Flux rss

Caractéristiques des servlets

Architecture du package Servlet

Les servlets sont des classes Java implémentant des classes et des interfaces provenant des packages :

  • javax.servlet, un package générique indépendant du protocole utilisé
  • javax.servlet.http, un package spécifique au protocole HTTP 1.0
  • (accessoirement le package java.io doit être importé, notamment pour gérer les exceptions)
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
Le package javax.servlet est fourni dans le JSDK (Java Servlet Development Kit, c'est-à-dire l'API Java Servlet) de Sun, disponible sur http://java.sun.com/products/servlets.

classe GenericServlet du package javax.servlet

Ainsi toutes les servlets implémentent directement ou indirectement l'interface Servlet, en dérivant une classe qui l'implémente: c'est-à-dire généralement la classe HTTPServlet, elle-même issue de GenericServlet.

La classe GenericServlet (javax.servlet.GenericServlet) définit une classe abstraite (implémentation de base de l'interface Servlet).

Fonctionnement d'une servlet

Lorsqu'une servlet est appelée par un client, la méthode service() est exécutée. Celle-ci est le principal point d'entrée de toute servlet et accepte deux objets en paramètres :

  • l'objet ServletRequest encapsulant la requête du client, c'est-à-dire qu'il contient l'ensemble des paramètres passés à la servlet (informations sur l'environnement du client, cookies du client, URL demandée, ...)
  • l'objet ServletResponse permettant de renvoyer une réponse au client (envoyer des informations au navigateur). Il est ainsi possible de créer des en-têtes HTTP (headers), d'envoyer des cookies au navigateur du client, ...

Développer une servlet

Afin de développer un servlet fonctionnant avec le protocole HTTP, il suffit de créer une classe étendant HttpServlet (qui implémente elle-même l'interface Servlet).

La classe HttpServlet (dérivant de GenericServlet) permet de fournir une implémentation de l'interface Servlet spécifique à HTTP. La classe HttpServlet surcharge la méthode service en lisant la méthode HTTP utilisée par le client, puis en redirigeant la requête vers une méthode appropriée. Les deux principales méthodes du protocole HTTP étant GET et POST, il suffit de surcharger la méthode adéquate afin de traiter la requête :

  • Si la méthode utilisée est GET, il suffit de redéfinir la méthode
    public void doGet(HttpServletRequest req, HttpServletResponse res);
  • Si la méthode utilisée est POST, il suffit de redéfinir la méthode
    public void doPost(HttpServletRequest req, HttpServletResponse res);

Développer une servlet

import javax.servlet.*;
import javax.servlet.http.*;
public class ServletDeBase extends HttpServlet {
  
  public void doGet(HttpServletRequest req, HttpServletResponse res)
	throws ServletException {
	
	// lecture de la requete
	// traitements
	// envoi de la reponse
  }
}

Lire la requête

A l'intérieur de la méthode DoXXX() (Doget() ou DoPost() selon la méthode invoquée) la requête de l'utilisateur est passée en paramètres sous forme d'objet (ou plus exactement l'interface) HttpServletRequest .

Afin de comprendre son fonctionnement, il est essentiel de connaître la façon selon laquelle les requêtes sont transmises du client au serveur par le protocole HTTP.

Voici les différentes méthodes de l'objet HttpServletRequest

Méthode Description
String getMethod() Récupère la méthode HTTP utilisée par le client
String getHeader(String Key) Récupère la valeur de l'attribut Key de l'en-tête
String getRemoteHost() Récupère le nom de domaine du client
String getRemoteAddr() Récupère l'adresse IP du client
String getParameter(String Key) Récupère la valeur du paramètre Key (clé) d'un formulaire. Lorsque plusieurs valeurs sont présentes, la première est retournée
String[] getParameterValues(String Key) Récupère les valeurs correspondant au paramètre Key (clé) d'un formulaire, c'est-à-dire dans le cas d'une sélection multiple (cases à cocher, listes à choix multiples) les valeurs de toutes les entités sélectionnées
Enumeration getParameterNames() Retourne un objet Enumeration contenant la liste des noms des paramètres passés à la requête
String getServerName() Récupère le nom du serveur
String getServerPort() Récupère le numéro de port du serveur

Créer la réponse

De la même façon, la réponse à fournir à l'utilisateur est représentée sous forme d'objet HttpServletResponse.

Voici les différentes méthodes de l'objet HttpServletResponse

Méthode Description
String setStatus(int StatusCode) Définit le code de retour de la réponse
void setHeader(String Nom, String Valeur) Définit une paire clé/valeur dans les en-têtes
void setContentType(String type) Définit le type MIME de la réponse HTTP, c'est-à-dire le type de données envoyées au navigateur
void setContentLength(int len) Définit la taille de la réponse
PrintWriter getWriter() Retourne un objet PrintWriter permettant d'envoyer du texte au navigateur client. Il se charge de convertir au format approprié les caractères Unicode utilisés par Java
ServletOutputStream getOutputStream() Définit un flot de données à envoyer au client, par l'intermédiaire d'un objet ServletOutputStream, dérivé de la classe java.io.OutputStream
void sendredirect(String location) Permet de rediriger le client vers l'URL location
Ce document intitulé « Caractéristiques des servlets » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Résultats pour Caractéristiques des servlets

Introduction aux servlets Introduction aux servlets Les servlets (on dit généralement une servlet) sont au serveur Web ce que les applets sont au navigateur pour le client. Les servlets sont donc des applications Java fonctionnant du côté serveur au même titre que les CGI... www.commentcamarche.net/contents/servlets/servintro.php3
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 { ... www.commentcamarche.net/contents/servlets/servprem.php3
Servlets - Le Java Servlet Development Kit (JSDK) Introduction au JSDK Le JSDK (Java Servlet Development Kit) est un package contenant l'ensemble des classes et des interfaces nécessaires au développement de servlets. De plus le JSDK de Sun contient un serveur web et un moteur de servlets... www.commentcamarche.net/contents/servlets/servjsdk.php3

Résultats pour Caractéristiques des servlets

Identifier son processeurVoici une astuce pour vous permettre d'identifier simplement votre processeur. Utile pour connaitre précisément les capacités et les caractéristiques techniques de cet élément et plus avant, éventuellement votre configuration. Sous... www.commentcamarche.net/faq/sujet-8781-identifier-son-processeur
Les Critères ErgonomiquesCet article aborde les méthodes d'évaluation ergonomique s'appliquant aux caractéristiques de l'interface. Sont abordées les méthodes à base de modèles formels, le recourt à l'expert, les méthodes d'inspection, l'inspection cognitive, l'évaluation de... www.commentcamarche.net/faq/sujet-11780-les-criteres-ergonomiques
Rdiff-backup: Des backups efficaces et incrémentauxCaractéristiques de rdiff-backup rdiff-backup est un logiciel de backup. Il permet faire une copie miroir d'un répertoire vers un autre (tout comme rsync ou une simple commande cp). En plus, il conserve les anciennes versions des fichiers, ce... www.commentcamarche.net/faq/sujet-7709-rdiff-backup-des-backups-efficaces-et-incrementaux

Résultats pour Caractéristiques des servlets

[tomcat-eclipse] Servlet exception - wrapper (Résolu)Bonsoir, Je vous écris pour demander conseil car j'ai une erreur et ne trouve pas d'ou cela vient. Voilà l'erreur en question lorsque je démarrre mon serveur tomcat sous éclipse : StandardWrapper[/TOTO:TotoAction]: La servlet TotoAction... www.commentcamarche.net/forum/affich-2515104-tomcat-eclipse-servlet-exception-wrapper
[JAVA] Servlet et redirection vers POST (Résolu)Salut tous le monde, Je voulais savoir comment faire pour que ma Servlet envoi des infos POST par la redirection aafin d'éviter ca : rep.sendRedirect("index.jsp?PWD=mon_mot_de_passe"); je ne sais pas ou trouver ses infos la, j'ai 3 bouquins... www.commentcamarche.net/forum/affich-2235235-java-servlet-et-redirection-vers-post
[servlet] envoyer des données a un formulaire (Résolu)Bonjour, étant nouveau ici je me décide a poster ce forum m'a bien aidé auparant. Alors je m'explique j'ai une jsp avec un formulaire. Lorsque je clique sur le bouton, ma servlet est appelée et récupere les données du formulaire.... www.commentcamarche.net/forum/affich-2812613-servlet-envoyer-des-donnees-a-un-formulaire

Résultats pour Caractéristiques des servlets

Télécharger Ulead PhotoImpactUlead PhotoImpact X3 combine toutes les fonctionnalités d’un éditeur de photo. Vous pouvez manipuler des photographies ou des images rapidement et facilement selon votre inspiration. Voici quelques principales caractéristiques : - Créez vos projets... www.commentcamarche.net/telecharger/telecharger-34055418-ulead-photoimpact
Télécharger CD-DVD SpeedCD/DVD Speed est un outil d'analyse de la performance (benchmark) des lecteurs CD-ROM/DVD-ROM, capable de tester les principales caractéristiques du lecteur, à savoir : Taux de transfert (Transfer rate) Temps d'accès (Seek times) Usage du... www.commentcamarche.net/telecharger/telecharger-143-cd-dvd-speed
Télécharger EASEUS Partition ManagerEaseUs Partition Manager Free, est le logiciel par excellence à avoir sur son système. EaseUs Partition Manager partitionne facilement et sans erreur vos disques durs à la taille que vous avez choisie. Principales caractéristiques de EaseUs Partition... www.commentcamarche.net/telecharger/telecharger-34056035-easeus-partition-manager

Résultats pour Caractéristiques des servlets

Cycle de vie des servletsLe cycle de vie d'une servlet Le cycle de vie d'une servlet est assuré par le conteneur de servlet. Ainsi afin d'être à même de fournir la requête à la servlet, récupérer la réponse ou bien tout simplement démarrer/arrêter la servlet, cette... www.commentcamarche.net/contents/servlets/servcycle.php3
Java Server Pages - Les caractéristiquesImplantation du code JSP au sein de la page HTML Un fichier JSP est un fichier portant l'extension .jsp, contenant du code HTML ainsi que des balises spécifiques : balises permettant d'intégrer une servlet au coeur du code HTML balises... www.commentcamarche.net/contents/jsp/jspcarac.php3
Servlets - Gestion des formulairesIntroduction aux formulaires Les servlets rendent très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML, c'est-à-dire une interface graphique permettant à l'utilisateur de saisir des données. Grâce à la balise... www.commentcamarche.net/contents/servlets/servform.php3