Servlet en Java
- Qu’est-ce que Servlet
- Avantages de l’utilisation de Servlet
- Comment créer une servlet en Java
- Paquets importants pour Servlet
- Classes de servlets
- Interfaces de servlets
Ce tutoriel présente ce qu’est un servlet et comment créer un servlet en Java.
Qu’est-ce que Servlet
Servlet est une technologie côté serveur utilisée pour créer des applications Web en Java. Il crée des applications Web dynamiques et fournit une API composée de plusieurs classes et interfaces pour gérer l’application.
Avantages de l’utilisation de Servlet
Avant la servlet, un programme CGI (Common Gateway Interface
) était utilisé pour créer des programmes côté serveur qui présentaient plusieurs problèmes de performances. Servlet a l’avantage sur CGI et offre les avantages suivants :
- Performances plus élevées grâce au concept de multithreading
- Aucune dépendance à la plate-forme
- Portable
- Sécurisé et sûr grâce au byte code Java.
Comment créer une servlet en Java
Il existe plusieurs manières de créer une application de servlet, par exemple en utilisant l’une des classes ou interfaces suivantes :
- Implémenter l’interface
Servlet
- Hériter de la classe
GenericServlet
- Hériter de la classe
HttpServlet
Il s’agit de certaines classes et interfaces utilisées pour créer une application de servlet. Ils contiennent des méthodes telles que doPost()
et doGet()
pour gérer les requêtes HTTP.
Une application de servlet suit une structure de répertoire/projet spécifique et se compose de certaines étapes requises telles que :
- Créer une servlet
- Créer un descripteur de déploiement
- Déployer l’application servlet sur un serveur (apache tomcat).
Comme nous l’avons indiqué précédemment, pour créer une servlet, nous devons étendre la classe HttpServlet
et redéfinir ses méthodes. Ici, nous utilisons la méthode doGet()
pour gérer les requêtes Get.
Ce qui suit est un code de servlet de base.
Créer une servlet
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
// Extending HttpServlet class
public class HelloServlet extends HttpServlet {
private String msg;
public void init() throws ServletException {
// Do required initialization
msg = "Hello Servlet";
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Setting content type for response
response.setContentType("text/html");
// printing msg to browser in h1 heading
PrintWriter out = response.getWriter();
out.println("<h1>" + msg + "</>");
}
public void destroy() {
// code to execute while destroy servlet.
}
}
Production :
Ce code de servlet imprimera le message ci-dessous dans le navigateur.
Créer le descripteur de déploiement
Il s’agit d’un fichier XML qui contient des informations sur le servlet, et le conteneur Web obtient toutes les informations de ce fichier. Ce fichier utilise plusieurs balises telles que <web-app>
, <servlet>
, <servlet-mapping>
, etc.
Ils sont tous utilisés pour définir des informations pour le conteneur. Le conteneur utilise un analyseur pour extraire ces informations.
Voir un descripteur de servlet (web.xml) pour notre classe HelloServlet.
<web-app>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/helloservlet</url-pattern>
</servlet-mapping>
</web-app>
Après avoir créé ce fichier XML, compilez le fichier de servlet et déployez le projet complet sur un serveur Web tel qu’Apache Tomcat. Il s’agit d’une application Web, elle nécessite donc un serveur pour fonctionner.
Après avoir déployé le projet, démarrez le serveur et accédez au servlet en saisissant l’URL de mappage du navigateur helloservlet
.
Paquets importants pour Servlet
L’API Servlet contient deux packages principaux qui contiennent toutes les classes et interfaces.
javax.servlet
javax.servlet.http
Classes de servlets
Voici quelques classes de servlets fréquemment utilisées :
GenericServlet
ServletInputStream
ServletOutputStream
ServletRequestWrapper
ServletResponseWrapper
ServletRequestEvent
ServletContextEvent
HttpServlet
Cookie
HttpServletRequestWrapper
HttpServletResponseWrapper
HttpSessionEvent
Interfaces de servlets
Voici quelques interfaces de servlet fréquemment utilisées :
Servlet
ServletRequest
ServletResponse
RequestDispatcher
ServletConfig
ServletContext
Filter
FilterConfig
FilterChain
ServletRequestListener
HttpServletRequest
HttpServletResponse
HttpSession
HttpSessionListener