|
|
avr
13
2006
|
Gérer le cache via la méthode init() de la classe HttpServlet |
|
|
|
Ecrit par Kamal AOUDA
|
|
13-04-2006 |
|
Gérer le cache via la méthode init() de la classe HttpServlet
La méthode init() de la classe HttpServlet est également un bon emplacement pour
implémenter la gestion du cache. Contrairement à la méthode service() qui est
appelée à chaque fois que la servlet reçoit une requête ou renvoie une réponse,
init() n’est appelée qu’une seule fois dans le cycle de vie de la servlet. Cela
permet de réduire considérablement le nombre de va et vient (round trip) entre
le client et la servlet lorsque les réponses retournées ne changent pas
fréquemment (si les réponses ne changent jamais elles doivent être normalement
stockées dans une page HTML statique).
* L’exemple 1 régénère la réponse à chaque fois que la servlet reçoit une
nouvelle requête.
* L’exemple 2 génère la réponse une seule fois dans le cycle de vie de la servlet puis la place dans le cache. Notons par ailleurs que l’objet PrintWriter
est remplacé par un StringBuffer pour améliorer les performances.
Exemple 1 :
public void service(HttpServletRequest req, HttpServletRespnse res) throws
ServletException,IOException {
res.setContentType(“text/html”);
Printwriter out = req.getWriter();
out.print("<html>”);
out.print("<head><title>Hello world</title></head>”);
out.print(“<body>”);
// send the dynamic data here
out.print(“</body>”);
out.print("</html>”);}
Exemple 2 :
public class servlet extends HttpServlet {
byte[] header; byte[] navbar; byte[] footer; byte[] otherStaticData;
public void init(ServletConfig config) throws ServletException{
//create all the static data here
//StringBuffer sb = new StringBuffer(); // better to initialize the StringBuffer
with some size to //improve performance
sb.append("<html>”);
sb.append("<head><title>Hello world</title></head>”);
sb.append(“<body>”); header = sb.toString().getBytes();
// do same for navbar if its data is static
// do same for footer if its data is static}
public void service(HttpServletRequest req, HttpServletResponse res) throws
ServletException, IOException { res.setContentType("text/html");
ServletOutputStream out = res.getOutputStream();
out.write(header); out.write(navbar);
// write dynamic data here
out.write(footer);}
|
|
Java-XML et oracle : E-commerce - EAI - portails d'entreprise - Applications mobiles |
|
Java-XML et oracle : E-commerce - EAI - portails d'entreprise - Applications mobiles
 Cet ouvrage montre comment tirer parti de l'offre Java-XML d'Oracle,
tant au niveau de la base de données Oracle8i (drivers JDBC, conteneur
EJB, ORB Corba, XSQL...), que des produits associés, outils XML-XSLT,
JDeveloper, Oracle9i Application Server, etc.
L'ouvrage insiste tout particulièrement sur les problèmes d'intégration
de ces technologies, de design des architectures et de scalabilité des
applications. II est illustré de nombreux exemples de code et de deux
études de cas, une application e-commerce construite à l'aide d'EJB et
un serveur de documents XML multithread.
Références
Lien sur le site d'Amazon.
Fréderic Berque, Serge
Frezefond, Ludovic Sorriaux
Titre : Java, XML et Oracle
Éditeur : Eyrolles
Collection : Solutions Développeurs
Parution : mars 2001
634 pages
ISBN : 2-212-09149-4
EAN13 : 9782212091496
|
|
|