Blue Flower

Chercher

La classe HttpServlet

La classe abstraite javax.servlet.http.HttpServlet dérive de la classe javax.servlet.GenericServlet et comme toute Servlet, elle implémente l'interface   javax.servlet.Servlet;  Il est donc très avantageux de se servir de la classe HttpServlet que de réécrire une implémentation nouvelle de l'interface Servlet:

Les interfaces HttpServletRequest et HttpServletResponse

L'interface "javax.servlet.http.HttpServletRequest" dérive de l'interface "javax.servlet.ServletRequest" et l'interface "javax.servlet.http.HttpServletResponse"  de l'interface "javax.servlet.ServletResponse"; La première  définit un objet qui fournit des informations concernant les requêtes clientes et la seconde un objet contenant des informations relatives aux réponses à envoyer au client. Dès la réception d'une requête cliente, le conteneur de Servlets crée deux objets: HttpServletRequest et HttpServletResponse. il les transmet aux  arguments des méthodes  doGet(HttpServletRequest req, HttpServletResponse res) ou doPost(HttpServletRequest req, HttpServletResponse res).
Les interfaces "HttpServeletReqest", "HttpServletResponse" et  "HttpSession" possèdent plusieurs méthodes.

L'interface javax.servlet.http.HttpServletRequest

Les fonctionnalités deHttpServletRequest les plus utilisées permettent de:

  • Obtenir les paramètres de l'utilisateur,
  • stocker et obtenir les objets au sein de la requête
  • Lire les en-tête
  • Obtenir les objets Session

En plus de ces méthodes, HttpServletRequest   possède d'autres  méthodes non moins importantes comme: 

  • Cookies getCookies ():Cette méthode retourne un tableau contenant des objet de types Cookies que le client a envoyé accompagnées de requête
  • String getQueryString () : Cette méthode retourne la demande contenue au sein de l'URL contenu dans la requête
  • String getMethod ():  Cette méthode retourne le nom de la méthode HTTP avec laquelle on a réalisé la requête;  cela peut-être GET, POST ou  PUT.
  • HttpSession getSession () : Cette méthode retourne la session courante HttpSession  liée à la requête

L'interface HttpServletRequest dérive de l'interface ServletRequest,  donc elle dispose des  méthodes de ServletRequest comme: 

  • String getParameter (String parameterName): Cette méthode est utilisée pour récupérer la valeur d'un paramètre d'une requête en se servant du nom; ces paramétres sont envoyées par le client; chaque valeur retournée est de type "String" (voir exemple d’utilisation ci-dessous): "http://localhost:8080?param=hello" ; dans la Servlet on peut avoir le paramètre par l'instruction " request.getParameter(“param”) " et la valeur est "Hello"
  • String[] getParameterValues (String parameterName): Cette méthode fonctionne comme  la précédente sauf qu' ici on aura un tableau de caractères à la sortie; les éléments de ce tableau représentent les valeurs des paramètres des requêtes envoyées; ça peut être par exemple les valeurs issues de menu déroulant à choix multiples
  • Object getAttribute (String attributeName): cette méthode récupère la valeur de l' attribut ayant comm nom "attributName; cette valeur est un objet de Object.
  • void setAttribute (String attributeName, Object value): Cette méthode est utilisée pour garder la valeur "value" du paramètre "attributeName" d'un ereqête; "value" est de type Object.
  • ServletContext getServletContext (): Cettte méthode est utilisée pour récupérer le contexte courant de la Servlet. L'objet ServletContext contient des informations relatives à l'application web et aussi pour toutes les Servlets de l'application.

L'interface javax.servlet.http.HttpServletResponse

Les fonctionnalités de HttpServletResponse les plus utilisées  permettent de: 

  • Renvoyer la réponse vers l'utilisateur 
  • Changer ou mettre à jour les valeurs des en-tête
  • Rediriger vers un autre URL
  • void addCookie (Cookie cookie): Cette méthode ajoute l'objet "cookie" à la réponse.
  • void sendRedirect (String url) : Cette méthode redirige le browser vers un URL spécifique à partir de la Servlet

Ci-dessus on a les méthodes les plus utilisées de ServletResponse; mais d'autres appartiennent à HttpServletResponse par dérivation:

  • PrintWriter getWriter () : Cette méthode retourne un objet PrintWriter qui peut envoyer toute sorte de fichiers (texte, html, etc) au client.
  • void setContentType (String type):Cette méthode définit le type du contenu de la réponse à envoyer au client.

ServletRequest et ServletResponse sont les arguments de la méthode service() de la classe GenericServlet.

(à suivre)

L'interface javax.servlet.http.HttpSession

Le protocole HTTP au sein des Serveurs Web est une technologie sans état, c'est à-dire,  dès que le serveur Web reçoit une requête,  il la traite et il se met en attente d'une autre requête sans garder  de trace de la requête qu'elle a traitée précédemment; il arrive que parfois, au sein d'une application web, d'avoir besoin des informations venant de  la précédente requête; dans ce cas on fait référence à  la notion de session.
Une Session  est le faite de pouvoir conserver l'état conversationnel d'un client  d'avec un serveur en l’occurrence ici un serveur Web. Pour avoir  des informations entre le client et le serveur, on se sert  de  l'interface "javax.servlet.http.HttpSession" où sont définies un certain nombre de méthodes; ainsi, l'id de la session (le même durant la session)  est transmis  du client au serveur à chaque requête/réponse et ainsi on peut garder la trace des échanges entre les client et le Serveur Web. On peut avoir ou modifier des informations  relative à une session à travers un objet  HttpServletRequest en se servant des méthodes suivantes:

  1. HttpSession HttpServletRequest.getSession () : Cette méthode getSession() de HttpServletRequest retourne  un objet de type HttpSession; l'objet retourné est  attaché à la requête du client; si la requête n'est pas déjà liée à une session, alors un objet session est créé et est retourné. 
  2. HttpSession HttpServletRequest.getSession (boolean flag):  Cette méthode HttpServletRequest.getSession(...)  retourne un objet de type HttpSession si la requête est liée à une session; sinon elle retourne null.

Toutefois l'interface javax.servlet.http.HttpSession possède d'autres méthodes comme:

  1. String getId () : cette méthode retourne une chaîne de caractères représentant l'unique identificateur assigné à la session.
  2. Object getAttribute (String name): cette méthode retourne  un objet associer au nom spécifié au sein de la session, ou null si aucun objet n'est associé au nom de la session. D'autres méthodes permettent aussi de travailler au sein d' une session à savoir, getAttributeNames(), removeAttribute(String name) et setAttribute(String name, Object value) 
  3. long getCreationTime ():  cette méthode retourne comme valeur le moment où cette session vient d'être créée. On peut aussi avoir le moment où la session est utilisée pour la dernière fois avec la méthode getLastAccessedTime () 
  4. setMaxInactiveInterval (int interval): cette méthode précise,  en secondes, le temps entre les requêtes d'un client avant que le conteneur invalide la session. On peut avoir la valeur du timout pour la session à partir de la méthode getMaxInactiveInterval().
  5. ServletContext getServletContext (): retourne l'objet  ServletContext de l'application 
  6. boolean isNew (): cette méthode retourne "true"  si la session est fraîchement  créée par client sinon non
  7. void invalidate (): cette méthode invalide la session et libère tout objet qui lui est associé.

(à suivre)

 

(à suivre)..

précédent suivant