Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

Servlets - Les variables d'environnement

Les variables d'environnement avec les servlets Encyclopédie


Notion de variable d'environnement

Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas d'une servlet est:

  • Le serveur
  • Le client
Java permet d'accèder à ces variables grâce à des méthodes de l'objet HttpServletRequest.

Méthodes spécifiques des servlets

Java fournit une méthode correspondant à chaque variable d'environnement. Voici la liste des méthodes de l'objet HttpServletRequest permettant de récupérer des variables d'environnement :

Variable d'environnement Méthode associée
AUTH_TYPE getAuthType()
CONTENT_LENGTH getContentLength()
CONTENT_TYPE getContentType()
HTTP_ACCEPT getHeader("Accept")
HTTP_REFERER getHeader("Referer")
HTTP_USER_AGENT getHeader("User-Agent")
PATH_INFO getPathInfo()
PATH_TRANSLATED getPathTranslated()
QUERY_STRING getQueryString()
REQUEST_METHOD getRequestMethod()
REMOTE_ADDR getRemoteAddr()
REMOTE_HOST getRemoteHost()
REMOTE_USER getRemoteUser()
SCRIPT_NAME getScriptName()
SERVER_NAME getServerName()
SERVER_PROTOCOL getServerProtocol()
SERVER_PORT getServerPort()

Récupérer n'importe quel en-tête

Toutefois, toutes les variables d'environnement ne sont pas forcément associée à une méthode de l'objet HttpServletRequest, c'est pourquoi ce dernier propose des méthodes permettant de récupérer individuellement les variables d'environnement du serveur d'après leur nom, ainsi que des méthodes permettant d'en récupérer la liste.

La méthode getHeader() de l'objet HttpServletRequest permet de récupérer la valeur d'une variable d'environnement dont le nom est pasSé en paramètre :

public String getHeader(String nomEnTete)
Il est possible de récupérer l'ensemble des noms des en-têtes disponibles dans un objet Enumeration (il est alors nécessaire d'importer java.util.*) grâce à la méthode getHeaderNames() de l'objet HttpServletRequest :
public Enumeration getHeader()
L'objet Enumeration retourné peut alors être parcouru grâce à ses méthodes hasMoreElements() et nextElement() :
Enumeration enTetes = req.getHeaderNames();

while (enTetes.hasMoreElements()) {
	String enTete = (String) enTetes.nextElement();

}
Le code suivant permet d'afficher un tableau contenant l'ensemble de en-têtes présents dans la requête :
import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*
import java.util.*
public class PremiereServlet extends HttpServlet {
  public void doGet(HttpServletRequest req, 
			HttpServletResponse res) 
			throws ServletException, IOException {
	res.setContentType("text/html");

	PrintWriter out = res.getWriter();

	out.println("<HTML>");

	out.println("<HEAD>");

	out.println("<TITLE> Tableau des en-têtes HTTP </TITLE></HEAD>");

	out.println("<BODY>");

	out.println(req.getRemoteAddr());

	out.println("<table border=\"1\" cellspacing=\"0\">");

	Enumeration enTetes = req.getHeaderNames();

	while (enTetes.hasMoreElements()) {
		String enTete = (String) enTetes.nextElement();

		out.println("<tr><td>" 
		+ enTete 
		+ "</td><td>" 
		+ req.getHeader(enTete) 
		+ "</td></tr>");

	}
	out.println("</table>");

	out.println("</HTML>");

	out.close();

	out.println("");

	out.println("");

	out.close();

  }
}

Discussions pertinentes trouvées dans le forum

27/02 21h51 windows windows servlet32.ex Windows ne trouve pas C:\WINDOWS\servlet32.ex Virus/Sécurité 28/02 12h11->BmV14
15/05 16h45 java servlet redirection post [JAVA] Servlet et redirection vers POST Développement 16/05 17h32->maily3
07/12 16h59 tomcat eclipse servlet exception wrapper [tomcat-eclipse] Servlet exception - wrapper Développement 08/12 14h57->kij_822
01/02 00h08 crrscr32.exe servlet32.exe connaissez crrscr32.exe - servlet32.exe vous connaissez? Virus/Sécurité 04/02 00h28->scoubidou9441
05/01 13h23 interface servlet Interface et servlet Développement 12/01 10h24->puce3117
24/06 18h42 java servlet Java + servlet Développement 26/06 10h02->kaiz15
24/01 08h51 pdb servlet pdb de Servlet Développement 24/01 13h49->Lulu13
25/01 09h53 servlet formulaire html servlet+formulaire html Webmastering 25/01 14h26->maynouch11
15/05 10h50 servlet servlet?? Développement 27/05 14h25->omar8
30/11 10h06 servlet inputstream Servlet et InputStream Développement 30/11 16h53->GlopGlop7
Discussion fermée Problème résolu Servlets Plus de discussions sur « Servlets »

Ce document intitulé « Servlets - Les variables d'environnement » issu de l'encyclopédie informatique 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.