Das HttpServletRequest-Objekt stellt die Anforderung des Clients dar. Wenn der Client über das HTTP-Protokoll auf den Server zugreift, werden alle Informationen im HTTP-Anforderungsheader in diesem Objekt gekapselt. Entwickler können die Informationen des Clients über die Methoden dieses Objekts abrufen.
Gängige Anfragemethoden :
1. Gängige Methoden zum Abrufen von Client-Umgebungsinformationen :
1. Die getRequestURL-Methode gibt die vollständige URL zurück, wenn der Client die Anfrage stellt.
2. Die getRequestURI-Methode gibt den Ressourcennamenteil in der Anforderungszeile zurück.
3. Die getQueryString-Methode gibt den Parameterteil der Anforderungszeile zurück.
4. Die getRemoteAddr-Methode gibt die IP-Adresse des Clients zurück, der die Anfrage gestellt hat.
5. Die getRemoteHost-Methode gibt den vollständigen Hostnamen des Clients zurück, der die Anfrage gestellt hat.
6. Die getRemotePort-Methode gibt die vom Client verwendete Netzwerk-Portnummer zurück.
7. Die Methode getLocalAddr gibt die IP-Adresse des WEB-Servers zurück.
8. Die Methode getLocalName gibt den Hostnamen des WEB-Servers zurück.
9.getMethod ruft die Clientanforderungsmethode ab.
Kopieren Sie den Codecode wie folgt:
Paket com.yyz.request;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
öffentliche Klasse RequestDemo erweitert HttpServlet {
public void doGet(HttpServletRequest-Anfrage, HttpServletResponse-Antwort)
wirft ServletException, IOException {
/**
*URL ist eine Teilmenge von URI.
* URI wird zur Identifizierung einer Ressource verwendet.
*URL wird verwendet, um eine Ressource im Internet zu identifizieren.
*/
System.out.println(request.getRequestURL());//Rufen Sie die Anforderungs-URL-Adresse ab
System.out.println(request.getRequestURI());//Holen Sie sich die angeforderte Ressource
System.out.println(request.getQueryString());
System.out.println(request.getRemoteAddr());//Besucher-IP abrufen
System.out.println(request.getRemoteHost());
//Da es nicht auf DNS registriert ist, lautet das Druckergebnis immer noch 127.0.0.1. Wenn Baidu auf dieses Programm zugreift, drucken Sie www.baidu.com
System.out.println(request.getRemotePort());//Holen Sie sich die angeforderte Ressource
System.out.println(request.getMethod());//Holen Sie sich die angeforderte Ressource
}
public void doPost(HttpServletRequest-Anfrage, HttpServletResponse-Antwort)
wirft ServletException, IOException {
doGet(Anfrage,Antwort);
}
}
Geben Sie http://localhost:8080/test/servlet/RequestDemo in die Adressleiste des Browsers ein und die Hintergrundausgabe sieht wie folgt aus:
2. Rufen Sie den Client-Anfrage-Header ab :
1.getHeader(String name)-Methode
2.getHeaders(String name)-Methode
3.getHeaderNames()-Methode
Kopieren Sie den Codecode wie folgt:
Paket com.yyz.request;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//Anforderungsheader abrufen
öffentliche Klasse RequestDemo erweitert HttpServlet {
public void doGet(HttpServletRequest-Anfrage, HttpServletResponse-Antwort)
wirft ServletException, IOException {
String head = request.getHeader("Accept-Encoding");
//Einige Browser unterstützen keine komprimierten Daten
if(head.contains("gzip")){
//Komprimierte Daten ausgeben
}anders{
//Unkomprimierte Daten ausgeben
}
//Alle Werte des Headers mit dem angegebenen Namen abrufen
Aufzählung e = request.getHeaders("Accept-Encoding");
while(e.hasMoreElements()){
String value = (String ) e.nextElement();
System.out.println(value);
}
System.out.println("----------");
//Alle Header und Werte abrufen
e = request.getHeaderNames();
while(e.hasMoreElements()){
String name = (String)e.nextElement();
String-Wert = request.getHeader(name);
System.out.println(name+"="+value);
}
}
public void doPost(HttpServletRequest-Anfrage, HttpServletResponse-Antwort)
wirft ServletException, IOException {
doGet(Anfrage,Antwort);
}
}
Greifen Sie in einem Browser auf das Programm zu und die Hintergrundausgabe sieht wie folgt aus:
3. Rufen Sie die Client-Anfrageparameter ab (vom Client übermittelte Daten):
1.getParameter(name)-Methode
2.getParameterValues(String name)-Methode
3.getParameterNames-Methode
4.getParameterMap-Methode, die häufig bei der Erstellung von Frameworks verwendet wird
package com.yyz.request; import java.util.Enumeration; import java.util.Map.Entry; import javax.servlet.http .HttpServlet; import javax.servlet.http.HttpServletRequest; javax.servlet.http.HttpServletResponse; //Anforderungsdaten abrufen public class RequestDemo erweitert HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse Response) throws 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"); if(likes!=null ){ for(String like : likes){ System.out.println(like } } //Das Folgende ist eine professionelle Art, diese Art von Durchquerung zu schreiben, eine Möglichkeit, Array-Daten zu erhalten (um Nullzeiger-Ausnahmen zu vermeiden) for(int i=0;likes!=null&&i<likes.length;i++){ System.out .println(likes[ i]); } //Alle Namen abrufen und den Wert basierend auf dem Namen abrufen Enumeration e = request.getParameterNames(); while(e.hasMoreElements()){ String name = (String) e.nextElement(); value = request.getParameter(name); System.out.println(name+"="+value); ---------"); //Rufen Sie die Map-Sammlung ab, die zum Kapseln von Daten im Anforderungsobjekt verwendet wird. Map<String,String[]> map = request.getParameterMap(); for(Entry<String, String[ ] > me : map.entrySet()){ String name = me.getKey(); String [] v = me.getValue(); System.out.println(name+"="+v[0]); public void doPost(HttpServletRequest request, HttpServletResponse Response) löst eine ServletException aus { doGet(request,response);