EcommerceDEV. Développement, optimisation et sécurisation des sites de commerce électronique.
arrowAccueil arrow Programmation arrow J2EE/Java(script) arrow Servlet, se me méfier des objets PrintWriter
Jeudi 15 mai 2008
Nom d'utilisateur     Mot de passe      Conserver       Mot de passe perdu ? 
Menu
Accueil
A propos du site
Carte du site
Moteur de recherche
Nouvelles
Contactez-nous
Evénements
Lettres de nouvelles
- - - - - - -
Analyse
Conception
Optimisation
Programmation
Sécurité
Produits/Services
avr 13 2006
Servlet, se me méfier des objets PrintWriter Version imprimable Suggérer par mail
Appréciation des utilisateurs: / 1
FaibleMeilleur 
Programmation - J2EE/Java(script)
Ecrit par Kamal AOUDA   
13-04-2006
Servlet, se me méfier des objets PrintWriter

Une des erreurs fréquemment commises dans le codage des servlets consiste à utiliser la méthode println() de l’objet PrintWriter pour générer le contenu HTML destiné au browser (cf. classe Writer1). Avec une console , la méthode println() crée un séparateur pour afficher les résultats sur une nouvelle ligne. Avec les pages HTML ce séparateur est tout simplement ignoré parce que le browser n’interprète que les balises HTML.

Classe Writer1

public class Writer1 extends HttpServlet {public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<html>"); out.println("<head><title>Hello World</title></head>");
out.println("<body>"); for (int i = 0 ; i < 10; i++) { out.println("<h1>Hello World 1</h1>");}
out.println("</body></html>");}}

En utilisant de façon interchangeable les méthodes println() et print() on obtient les mêmes résultats mais pas le même niveau de performance. En fait le traitement d’une méthode println(String s) équivaut en termes de performance au traitement de la méthode suivante :

public void println(String s) { print(s); println();}

La méthode println() fait appel en arrière appel à la méthode print() qui à son tour doit réaliser des conversions vers le format spécifié par la méthode setContentType() de la classe HttpServletResponse. Ces conversions sont très coûteuses en mémoire et en processeur pour des formats comme l’unicode. Pour cette raison il faut essayer dans toute la mesure du possible de substituer des objets comme ServletOutputStream à l’objet PrintWriter.

Cela dit les servlets ne sont pas optimisées pour implémenter la couche de présentation. Comme nous l’avons vu dans la partie 4, elles sont plus efficientes lorsqu’elles sont utilisées exclusivement dans l’implémentation du contrôleur. A chaque fois que cela est possible, il faut évacuer des servlets tout le code qui contribue directement à la génération de la vue. Autrement on risque de créer des couplages qui peuvent s’avérer fatal pour le débit de l’application.
 

< Précédent   Suivant >
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

Moteur de recherche
Recommander ce site
Collaboration
Téléchargements
Derniers événements
Aucun événement
Sondages

En Java, quelle la meilleure technique pour programmer un panier d’achat ?

  
Blogs Ecommerce
Blog de capitaine commerce
top

Ce site a été crée avec le CMS Mambo. Un logiciel gratuit disponible sous licence GPL.

Copyright Ecommerce DEV 2006.

Hosted by SiteGround