Développement de Servlet
Développement de Servlet
-
Objectifs
- Connaitre les servlets
- Connaitre les paramètres de
doGet (). -
Présentation
- Afin de développer une servlet fonctionnant avec le protocole HTTP, il suffit de créer une classe étendant HttpServlet (qui implémente elle-même l’interface Servlet).
- Une servlet est une classe qui hérite de la classe
HttpServletet qui redéfinit les méthodes du protocole HTTP. - Si la méthode utilisée est GET, il suffit de redéfinir la méthode :
public void doGet( HttpServletRequest request, HttpServletResponse response )- Si la méthode utilisée est POST, il suffit de redéfinir la méthode :
public void doPost( HttpServletRequest request, HttpServletResponse response )-
Environnement d’exécution
-
cas général
-
Exemple
-
La méthode de servlet
doGet -
La méthode de servlet
doGet - C’est le code que vous avez compilé dans l’exemple précédent pour le servlet le plus simple possible:
- Ce servlet est utile pour tester votre configuration, mais il ne fait rien. Pour faire quelque chose, un servlet doit remplacer la méthode
doGet(). - C’est ce que le serveur Web appellera lorsque le navigateur envoie une requête GET pour votre servlet. La méthode
doGet()prend deux paramètres, une shell vide de votre override ressemble à ceci: -
Les parties composantes la méthode de servlet
doGet - La méthode de servlet
doGetest composée de trois parties. Les deux premiers sont des paramètres et le troisième une liste. - HttpServletRequest request
- Le premier paramètre de cette méthode ( HttpServletRequest request) est un objet représentant la requête effectuée par le navigateur.
- HttpServletResponse response
- Le deuxième paramètre ( HttpServletResponse response) est un objet représentant la réponse que le servlet construit pour renvoyer au navigateur. Vous allez définir les propriétés de cet objet, ou y écrire du HTML, dans toutes vos servlets.
- throws ServletException, IOException
- Après la liste des paramètres se trouve la clause throws de la méthode definition ( throws ServletException, IOException).
- Les servlets ont leurs propres exceptions, qu’ils peuvent lancer. En outre, il est possible de déclencher une IOException lors de l’écriture de HTML dans l’objet de réponse.
- Cette liste alerte le code serveur qui appelle
doGet()pour être prêt à intercepter ces types d’exceptions. -
Écrire un servlet qui génère du HTML
- On notera les points suivants :
- il faut importer des classes spéciales pour les servlets :
- La bibliothèque
javax.servletn’est pas toujours livrée en standard avec le jdk. Dans ce cas, on peut la récupérer directement sur le site d’Oracle. - Une servlet dérive de la classe
HttpServlet - Une requête GET faite à la servlet est traitée par la méthode doGet
- De même une requête POST faite à la servlet est traitée par la méthode
doPost - L’objet HttpServletRequest request est l’objet qui nous donne accès à la requête faite par le client Web. La réponse de la servlet sera faite via l’objet
HttpServletResponse response - L’objet
responsenous permet de fixer les entêtes http qui seront envoyés au client. Par exemple l’entête Content-type: text/html est ici fixé par : - Pour envoyer la réponse au client, la servlet utilise un flux de sortie que lui délivre l’objet response :
- Une foix ce flux de sortie obtenu, le code HTML est écrit dedans et donc envoyé au client :
- La génération de HTML implique aussi peu que quatre lignes de code dans la méthode
doGet ()de votre servlet . - Définissez le type de contenu de votre réponse, pour indiquer au navigateur que vous retournerez du texte HTML en clair
- Obtenez un rédacteur de sortie dans lequel vous pouvez écrire du HTML, attaché à l’objet de réponse
- Écrivez du HTML à cet écrivain
- Fermer l’écrivain
- Livre:Java EE Guide de développement d’applications web en Java de Jérôme LAFOSSE
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class ServletName extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException {
// lecture de la requête
// traitements
// envoi de la réponse
}
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException {
// lecture de la requête
// traitements
// envoi de la réponse
}
}
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class ServletName extends HttpServlet {
public void doGet(HttpServletRequest requete, HttpServletResponse reponse)
throws ServletException, IOExeption {
reponse.setContentType("text/html");
PrintWriter out = reponse.GetWriter();
out.println"");
out.println"Hello depuis une servlet
");
out.println"");
}
}
import javax.servlet.*;
import javax.servlet.http.*;
public class ServletName extends HttpServlet {
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//...........
}
import javax.servlet.*; import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<head>");
out.println("<title>Hello World!</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello World!</h1>");
out.println("</body>");
out.println("</html>");

Bibliographie
