L'objet HttpServletRequest représente la demande du client. Lorsque le client accède au serveur via le protocole HTTP, toutes les informations de l'en-tête de la demande HTTP sont encapsulées dans cet objet. Les développeurs peuvent obtenir les informations du client via les méthodes de cet objet.
Méthodes de requête courantes :
1. Méthodes courantes pour obtenir des informations sur l'environnement client :
1. La méthode getRequestURL renvoie l'URL complète lorsque le client fait la demande.
2. La méthode getRequestURI renvoie la partie nom de la ressource dans la ligne de requête.
3. La méthode getQueryString renvoie la partie paramètre de la ligne de requête.
4. La méthode getRemoteAddr renvoie l'adresse IP du client qui a effectué la demande.
5. La méthode getRemoteHost renvoie le nom d'hôte complet du client qui a effectué la demande.
6. La méthode getRemotePort renvoie le numéro de port réseau utilisé par le client.
7. La méthode getLocalAddr renvoie l'adresse IP du serveur WEB.
8. La méthode getLocalName renvoie le nom d'hôte du serveur WEB.
9.getMethod obtient la méthode de demande du client.
Copiez le code comme suit :
paquet com.yyz.request ;
importer java.io.IOException ;
importer java.io.OutputStream ;
importer javax.servlet.ServletException ;
importer javax.servlet.http.HttpServlet ;
importer javax.servlet.http.HttpServletRequest ;
importer javax.servlet.http.HttpServletResponse ;
la classe publique RequestDemo étend HttpServlet {
public void doGet (demande HttpServletRequest, réponse HttpServletResponse)
lance ServletException, IOException {
/**
*L'URL est un sous-ensemble de l'URI.
* L'URI est utilisé pour identifier une ressource.
*L'URL est utilisée pour identifier une ressource sur Internet.
*/
System.out.println(request.getRequestURL());//Obtenir l'adresse URL de la requête
System.out.println(request.getRequestURI());//Obtenir la ressource demandée
System.out.println(request.getQueryString());
System.out.println(request.getRemoteAddr());//Obtenir l'adresse IP du visiteur
System.out.println(request.getRemoteHost());
//Comme il n'est pas enregistré sur DNS, le résultat de l'impression est toujours 127.0.0.1. Si Baidu accède à ce programme, imprimez www.baidu.com.
System.out.println(request.getRemotePort());//Obtenir la ressource demandée
System.out.println(request.getMethod());//Obtenir la ressource demandée
}
public void doPost (demande HttpServletRequest, réponse HttpServletResponse)
lance ServletException, IOException {
doGet (demande, réponse);
}
}
Entrez : http://localhost:8080/test/servlet/RequestDemo dans la barre d'adresse du navigateur et la sortie en arrière-plan est la suivante :
2. Récupérez l'en-tête de la requête client :
Méthode 1.getHeader (nom de la chaîne)
Méthode 2.getHeaders (nom de la chaîne)
3.Méthode getHeaderNames()
Copiez le code comme suit :
paquet com.yyz.request ;
importer java.io.IOException ;
importer java.util.Enumeration ;
importer javax.servlet.ServletException ;
importer javax.servlet.http.HttpServlet ;
importer javax.servlet.http.HttpServletRequest ;
importer javax.servlet.http.HttpServletResponse ;
//Obtenir les en-têtes de requête
la classe publique RequestDemo étend HttpServlet {
public void doGet (demande HttpServletRequest, réponse HttpServletResponse)
lance ServletException, IOException {
String head = request.getHeader("Accept-Encoding");
//Certains navigateurs ne prennent pas en charge les données compressées
si(head.contains("gzip")){
//Sortie des données compressées
}autre{
//Sortie de données non compressées
}
//Récupère toutes les valeurs de l'en-tête avec le nom spécifié
Énumération e = request.getHeaders("Accept-Encoding");
while(e.hasMoreElements()){
Valeur de chaîne = (String ) e.nextElement();
System.out.println(valeur);
}
System.out.println("--------------");
//Obtenir tous les en-têtes et valeurs
e = request.getHeaderNames();
while(e.hasMoreElements()){
Nom de la chaîne = (String)e.nextElement();
Valeur de chaîne = request.getHeader(name);
System.out.println(name+"="+value);
}
}
public void doPost (demande HttpServletRequest, réponse HttpServletResponse)
lance ServletException, IOException {
doGet (demande, réponse);
}
}
Accédez au programme dans un navigateur et la sortie en arrière-plan est la suivante :
3. Obtenez les paramètres de la demande du client (données soumises par le client) :
Méthode 1.getParameter(nom)
Méthode 2.getParameterValues (nom de la chaîne)
3.Méthode getParameterNames
Méthode 4.getParameterMap, largement utilisée lors de la création de frameworks
package com.yyz.request ; importer java.io.IOException ; importer java.util.Enumeration ; importer java.util.Map.Entry ; importer javax.servlet.ServletException ; .HttpServlet ; importer javax.servlet.http.HttpServletRequest ; javax.servlet.http.HttpServletResponse; //Obtenir les données de la requête public class RequestDemo extends HttpServlet { public void doGet (requête HttpServletRequest, réponse HttpServletResponse) lance ServletException, IOException { //http://localhost:8080/test/servlet/RequestDemo? name=yyz String value = request.getParameter("name"); System.out .println(value); //http://localhost:8080/test/servlet/RequestDemo?like=sing&like=dance String likes[] = request.getParameterValues("like"); ){ for(String like : likes){ System.out.println(like } }) //Ce qui suit est une manière professionnelle d'écrire ce type de parcours, une manière d'obtenir des données de tableau (pour éviter les exceptions de pointeur nul) for(int i=0;likes!=null&&i<likes.length;i++){ System.out .println(likes[ i]); } //Obtenir tous les noms et obtenir la valeur basée sur le nom Enumeration e = request.getParameterNames(); while(e.hasMoreElements()){ String name = (String) e.nextElement(); value = request.getParameter(name); System.out.println(name+"="+value } System.out.println("-------------); ---------"); //Obtenir la collection Map utilisée pour encapsuler les données dans l'objet de requête Map<String,String[]> map = request.getParameterMap(); for(Entry<String, String[ ] > moi : map.entrySet()){ Nom de la chaîne = me.getKey(); String [] v = me.getValue(); System.out.println(name+"="+v[0]); } } public void doPost (demande HttpServletResponse) renvoie ServletException, IOException { doGet (demande, réponse);