Servlet JSP
Servlet JSP
Servlet JSP
La technologie Servlet est utilisée pour créer des applications web (côté serveur et génère des pages Web
dynamique), Elle reçoit une requête du client, elle effectue des traitements et renvoie la réponse.
La servlet est :
– Une API qui fournit de nombreuses interfaces et les classes.
– Technologie pour créer des applications WEB.
– Peut être invoquée plusieurs fois en même temps pour répondre à plusieurs requêtes simultanées.
– Elle peut jouer le rôle du contrôleur (se positionner au milieu entre un client léger (exemple “navigateur
web”) et la source de données).
Les différentes étapes pour créer un objet distant et l'appeler avec RMI
Mise en place
Architecture
HttpServletRequest : cet objet contient la requête HTTP, et donne accès à toutes ses
informations, telles que les en-têtes (headers) et le corps de la requête.
HttpServletResponse : cet objet initialise la réponse HTTP qui sera renvoyée au client, et
permet de la personnaliser, en initialisant par exemple les en-têtes et le corps
Une servlet est en réalité une simple classe Java, qui a la particularité de permettre le traitement de requêtes
et la personnalisation de réponses. Pour faire simple, dans la très grande majorité des cas une servlet n'est
rien d'autre qu'une classe capable de recevoir une requête HTTP envoyée depuis le navigateur de l'utilisateur,
et de lui renvoyer une réponse HTTP.
1. import java.io.IOException;
2.
3. import javax.servlet.ServletException;
4. import javax.servlet.http.HttpServlet;
5. import javax.servlet.http.HttpServletRequest;
6. import javax.servlet.http.HttpServletResponse;
7.
8. @WebServlet(name="Test" ,urlPatterns= {"/Test","/test"})
9. /** ligne obligatoire pour le mapping du servlet **/
10. /** le pattern est invoqué par le client **/
11. /** il correspond au servlet Test **/
12. public class Test extends HttpServlet {
13.
14. public void doGet( HttpServletRequest request, HttpServletResponse response )
15. throws ServletException, IOException{
16.
17. }
18. public void doPost( HttpServletRequest request, HttpServletResponse response )
19. throws ServletException, IOException{
20.
21. }
22. }
La génération de la réponse
Cette interface possède plusieurs méthodes pour mettre à jour l'en-tête http et la page HTML de
retour.
Méthode Rôle
void sendError (int) Envoie une erreur avec un code retour et un message par défaut
void sendError (int, String) Envoie une erreur avec un code retour et un message
PrintWriter getWriter() Héritée de ServletResponse, elle retourne un flux pour l'envoi de la réponse
Avant de générer la réponse sous forme de page HTML, il faut indiquer dans l'en-tête du message
http, le type MIME du contenu du message. Ce type sera souvent « text/html » qui correspond à
une page HTML mais il peut aussi prendre d'autres valeurs en fonction de ce que retourne la
servlet (une image par exemple). La méthode à utiliser est setContentType().
1. import java.io.*;
2. import javax.servlet.*;
3. import javax.servlet.http.*;
4.
5. @WebServlet(name="MyServlet" ,urlPatterns= {"/Servlet4","/servlet4"})
6. public class TestServlet4 extends HttpServlet {
7.
8. public void doGet(HttpServletRequest req, HttpServletResponse res)
9. throws ServletException, IOException {
10. res.setContentType("text/html");
11. ServletOutputStream out = res.getOutputStream();
12. out.println("<HTML>\n");
13. out.println("<HEAD>\n");
14. out.println("<TITLE>Bonjour</TITLE>\n");
15. out.println("</HEAD>\n");
16. out.println("<BODY>\n");
17. out.println("<H1>Bonjour</H1>\n");
18. out.println("</BODY>\n");
19. out.println("</HTML>");
20. }
21. }
Concrètement, les JSP sont basées sur les servlets. Au premier appel de la page JSP, le moteur de JSP génère
et compile automatiquement la servlet qui permet la génération de la page web. Le code HTML est repris
intégralement dans la servlet. Le code Java est inséré dans la servlet.
La servlet générée est compilée et sauvegardée puis elle est exécutée. Les appels suivants de la JSP sont
beaucoup plus rapides car la servlet, conservée par le serveur, est directement exécutée.
1. <HTML>
2. <HEAD>
3. <TITLE>Test</TITLE>
4. </HEAD>
5. <BODY>
6. <p>Plusieurs tags JSP commencent par <% et se finissent par %></p>
7. </BODY>
8. </HTML>