Le développement Web en Java

La conception de sites Web est possible en Java, elle est basée fondamentalement sur la technologie des Servlets et requière l’installation d’un conteneur comme le serveur Tomcat. C’est ce conteneur qui reçoit et oriente les requêtes http vers les Servlets idoines. En retour, la Servlet doit construire la réponse à la requête, en général au format html ou xml.

Le principe des Servlets est très puissant car il permet de répondre à n’importe quel type de requête http qui est le protocole standard des applications Web. Mais l’inconvénient est que les développeurs partent d’un fichier en langage Java pour produire un document en langage html. Ainsi, la rédaction d’une page Web est malaisée. Le handicap se fait particulièrement ressentir lors de la mise à jour du document. Voyez par vous-même :

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ExempleDeServlet extends HttpServlet {
    protected void doGet(HttpServletRequest req, HttpServletResponse res)
    throws  ServletException, IOException {
        OutputStream out = res.getOutputStream();
	out.println("<?xml version="1.0" encoding="UTF-8" ?>") ;
        out.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitionnal//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitionnal.dtd\">"
        out.println("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /><title>Exemple de Servlet</title></head>");
        out.println("<body>Vous ne vous en rendez peut-être pas compte, mais ce n'est vraiment pas pratique</body></html>");
    }
    protected void doPost(HttpServletRequest req, HttpServletResponse res)
    throws  ServletException, IOException {
        doGet(res, req);
    }
}

Les fondements de la technologie n’ont jamais été remis en cause et ils ont maintes prouvé leur pertinence. En revanche, le langage Java a été enrichie d’une nouvelle spécification avec l’arrivé des JSP (Java Server Page) il y a bientôt dix ans. L’inconvénient des Servlets a ainsi été surmonté en inversant les pôles : les JSP sont des documents qui suivent la structure du langage html avec la possibilité d’ajouter du code Java.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Exemple de JSP</title>
</head>
<body>
C'est beaucoup plus pratique à écrire et à mettre à jour
</body>
</html>

Comme on le voit ci-dessus, une JSP ressemble à s’y méprendre à un document html, c’est le conteneur qui se charge de compiler la JSP en Servlet. En fait, une JSP permet de faire bien plus de choses que d’écrire des balises html. Comme nous l’avons dis, il est également possible d’y insérer du code Java grâce aux Scriplets mais aussi de faire référence à une variable avec les Expressions Langage. Enfin, et c’est le plus important, les JSP reposent sur un langage de balises extensible, c’est-à-dire que contrairement au langage html qui définit l’ensemble des balises autorisées, le développeur de JSP peut créer ses propres balises. Ce mécanisme est extrêmement puissant et offre un gain de temps considérable en permettant de créer des composants complexes qui pourront être utilisés par la simple apposition d’une balise.

Malgré tous ces avantages, les JSP ne sont pas pour autant la panacée. Elles ont l’inconvénient de leur avantage, leur souplesse est telle que les JSP deviennent rapidement illisibles si le développeur ne s’astreint pas à une certaine rigueur. C’est à ce niveau qu’intervient le framework. Le rôle qui lui est dévolu est de définir un cadre de travail qui doit permettre de conserver l’avantage premier des JSP, à savoir leur facilité de mise à jour.

Nous reviendrons sur les frameworks dans un prochain billet.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s





%d blogueurs aiment cette page :