EcommerceDEV. Développement, optimisation et sécurisation des sites de commerce électronique.
arrowAccueil arrow Programmation arrow Base de données arrow Servlet, se me méfier des objets PrintWriter
Lundi 8 sept 2008
Nom d'utilisateur     Mot de passe      Conserver       Mot de passe perdu ?  Inscription
Menu
Accueil
A propos du site
Carte du site
Moteur de recherche
Nouvelles
Contactez-nous
Evénements
- - - - - - -
Analyse
Conception
Optimisation
Programmation
Sécurité
Produits/Services
Apr 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 >
Beginning PHP 5 and MySQL E-Commerce: From Novice to Professional
New Page 2

Livre à l'intention des développeurs déjà familiarisés avec PHP et MySQL. Il contient plusieurs exemples qui montrent comment développer des applications de commerce électronique de qualité. Outre les questions relatives au design et à la programmation, ce livre donne des conseils pour augmenter les ventes en ligne et diminuer le coût de traitement des commandes grâce aux services web XML.

 

Lien sur le site d'Apress.

 

Références

 

http://www.apress.com/book/bookDisplay.html?bID=356

Cristian Darie, Mihai Bucica , ISBN: 1-59059-392-8 , 568 pp., Nov 2004

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

Les bases de données objet conviennent-elles aux applications e-commerce ?

  
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