Servlets - Première Servlet
Premiere servlet
Voici un exemple simple de servlet dont le seul but est d'afficher du texte sur le
navigateur du client :
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class PremiereServlet extends HttpServlet {
  
  public void init() {
  }
  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> Titre </TITLE></HEAD>");
	out.println("<BODY>");
	out.println("Ma première servlet");
	out.println("</BODY>");
	out.println("</HTML>");
	out.close();
  }
}
La première étape consiste à importer les packages nécessaires
à la création de la servlet, il faut donc importer 
javax.servlet,
javax.servlet.http et 
javax.io
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*
Afin de mettre en place l'interface 
Servlet nécessaire au conteneur de servlet,
il existe plusieurs possibilités :
- Définir manuellement chaque méthode
- Dériver la classe GenericServlet et redéfinir les méthodes dont on a besoin
- Dériver la classe HttpServlet et redéfinir les méthodes dont on a besoin
Dans la servlet ci-dessus, la classe 
HttpServlet a été étendue
public class PremiereServlet extends HttpServlet {
}
Lorsque la servlet est instanciée, il peut être intéressant d'effectuer des 
opérations qui seront utiles tout au long du cycle de vie de la servlet (se connecter
à une base de données, ouvrir un fichier, ...). Pour ce faire, il s'agit de surcharger
la méthode 
init() de la servlet.
public void init() {}
A chaque requête, la méthode 
service() est invoquée. Celle-ci détermine
le type de requête dont il s'agit, puis transmet la requête et la réponse à
la méthode adéquate (
doGet() ou 
doPost). dans notre cas, on ne s'intéresse
qu'à la méthode GET, c'est la raison pour laquelle la méthode 
doGet() a été
surchargée
public void doGet(HttpServletRequest req, HttpServletResponse res)
	throws ServletException, IOException {
}
L'objet 
HttpServletRequest permet de connaître les éventuels paramètres passés
à la servlet (dans le cas d'un formulaire HTML par exemple), mais l'exemple ci-dessus n'en a pas l'utilité.
Par contre l'objet 
HttpServletResponse permet de renvoyer une page à l'utilisateur. La première étape
consiste à définir le type de données qui vont être envoyées au client. Généralement
il s'agit d'une page HTML, la méthode 
setContentType() de l'objet
HttpServletResponse doit donc prendre comme paramètre le 
type MIME associé
au format HTML (
text/html) :
res.setContentType("text/html");
Ensuite la création d'un objet PrintWriter grâce à la 
méthode getWriter() de l'objet HttpServletResponse permet d'envoyer
du texte formatté au navigateur (pour envoyer un flot de données, il faudrait
utiliser la méthode getOutputStream())
PrintWriter out = res.getWriter();
Enfin il faut utiliser la méthode 
println() de l'objet 
PrintWriter afin
d'envoyer les données textuelles au navigateur, puis fermer l'objet 
PrintWriter
lorsqu'il n'est plus utile avec sa méthode 
close()
	out.println("<HTML>");
	out.println("<HEAD><TITLE> Titre </TITLE></HEAD>");
	out.println("<BODY>");
	out.println("Ma première servlet");
	out.println("</BODY>");
	out.println("</HTML>");
	out.close();
Discussions pertinentes trouvées dans le forum
 
 
