具體方法如下:
請求行相關方法:
請求頭相關方法:
getHeader(String name) 返回指定的請求頭的值,如request.getHeader("Accept");訪問Accept的HTTP頭;request.getHeader("Host")輸出:192.168.0.1:8080;request.getHeader("Referer");request.getHeader("Accept-Language");request.getHeader("Accept-Encoding");request.getHeader("User-Agent");request.getHeader("Connection");request.getHeader("Cookie")
getHeaderNames() 該方法獲得一個Enumeration包含特定請求中接受到的所有請求頭的名稱
getIntHeader(String name) 獲取特定請求頭的值,並轉化為INT類型
getDateHeader(String name) 獲得特定請求頭的值,並轉化為Date類型
消息體相關方法:
請求轉發和請求范圍:
請求轉發:
getRequestDispatcher(String path) 返回給定路徑的RequestDispatcher對象
getNamedDispatcher(String name) 返回某個名稱的Servlet的RequestDispatcher 對象
forward(ServletReqeust,ServletResponse) 派發請求和響應對象到RequestDispatcher 對象所確定的新資源
include(ServletReqeust,ServletResponse) 類似forward() 不過有一些限制,該方法包含服務器端得資源,被包含的資源不能改變響應狀態代碼或設置頭信息
請求范圍:
請求范圍僅僅作用在與一個請求相關的兩個資源之間,如果需要繼續傳遞到第三個或者更多的Servlet,應當繼續調用HttpServletRequest對象的setAttribute()和getAttribute()方法
附:request方法大全:
協議:request.getProtocol()
輸出:HTTP/1.1
服務器信息 getServletConfig().getServletContext().getServerInfo()
輸出:JavaServer Web Dev Kit/1.0 EA (JSP 1.0; Servlet 2.1; Java 1.2; Windows NT 5.0 x86; java.vendor=Sun Microsystems Inc.)
客戶端IP: request.getRemoteAddr()
輸出:192.168.0.106
客戶端主機名:request.getRemoteHost()
輸出:abc
編碼:request.getCharacterEncoding()
輸出:GB2312
所發送的字節數:request.getContentLength()
輸出:-1
數據類型:request.getContentType()
輸出:null
Authorization頭:request.getAuthType()
輸出:basic或者digest
請求類型:request.getMethod()
輸出:通常是GET或者POST。但偶爾也會出現HEAD,PUT, Delete,OPTIONS,或者 TRACE.
URL中的附加路徑信息: request.getPathInfo()
輸出:URL中Servlet路徑之後、查詢字符串之前的那部分。
request.getPathTranslated()
映射到服務器實際路徑之後的路徑信息。
request.getQueryString()
這是字符串形式的附加到URL後面的查詢字符串,數據仍舊是URL編碼的。在Servlet中很少需要用到未經解碼的數據,一般使用getParameter訪問各個參數。
request.getRemoteUser()
如果提供了Authorization頭,則代表其用戶部分。它代表發出請求的用戶的名字。
request.getRequestedSessionId()
輸出SessionId
request.getRequestURI()
請求URL
request.getServletPath()
URL中調用Servlet的那一部分,不包含附加路徑信息和查詢字符串。
request.getHeader("Accept")
訪問Accept的HTTP頭。
request.getHeader("Host")
輸出:192.168.0.1:8080
request.getHeader("Referer")
request.getHeader("Accept-Language")
request.getHeader("Accept-Encoding")
request.getHeader("User-Agent")
request.getHeader("Connection")
request.getHeader("Cookie")
返回協議名稱:request.getScheme()
輸出:HTTP
Web服務器名字:request.getServerName()
輸出:192.168.0.1
服務器監聽的端口:request.getServerPort()
輸出:8080
原文地址:獲取request裡的所有參數名及其參數值作者:橡皮擦
request裡有兩個方法
request.getParameterMap();
request.getParameterNames();
我想用這兩種方法獲取。
1。用request.getParameterNames();
Enumeration enu=request.getParameterNames();
while(enu.hasMoreElements()){
String paraName=(String)enu.nextElement();
System.out.println(paraName+": "+request.getParameter(paraName));
}
2。request.getParameterMap();
訪問URL:http://127.0.0.1:8080/test.jsp?a=1&b=2&c=3
test代碼:
Map map=request.getParameterMap();
Set keSet=map.entrySet();
for(Iterator itr=keSet.iterator();itr.hasNext();){
Map.Entry me=(Map.Entry)itr.next();
Object ok=me.getKey();
Object ov=me.getValue();
String[] value=new String[1];
if(ov instanceof String[]){
value=(String[])ov;
}else{
value[0]=ov.toString();
}
for(int k=0;k<value.length;k++){
System.out.println(ok+"="+value[k]);
}
}