request常用方法及應用
request常用方法
獲得客戶機資訊
getRequestURL方法返回客戶端發出請求時的完整URL。
getRequestURI方法返回請求行中的資源名部分。
getQueryString 方法返回請求行中的引數部分。
getRemoteAddr方法返回發出請求的客戶機的IP地址
getRemoteHost方法返回發出請求的客戶機的完整主機名
getRemotePort方法返回客戶機所使用的網路埠號
getLocalAddr方法返回WEB伺服器的IP地址。
getLocalName方法返回WEB伺服器的主機名
getMethod得到客戶機請求方式
獲得客戶機請求頭
getHead(name)方法
getHeaders(String name)方法
getHeaderNames方法
獲得客戶機請求引數(客戶端提交的資料)
getParameter(name):獲取指定名稱的引數值。這是最為常用的方法之一。
getParameterValues(String name):獲取指定名稱引數的所有值陣列。它適用於一個引數名對應多個值的情況。如頁面表單中的複選框,多選列表提交的值。
getParameterNames():返回一個包含請求訊息中的所有引數名的Enumeration物件。通過遍歷這個Enumeration物件,就可以獲取請求訊息中所有的引數名。
getParameterMap():返回一個儲存了請求訊息中的所有引數名和值的Map物件。Map物件的key是字串型別的引數名,value是這個引數所對應的Object型別的值陣列
呼叫RequestDispatcher.forward 方法的請求轉發過程結束後,
瀏覽器位址列保持初始的URL地址不變。
HttpServletResponse.sendRedirect方法對瀏覽器的請求直接作出響應,響應的結果就是告訴瀏覽器去重新發出對另外一個URL的訪問請求;
RequestDispatcher.forward方法在伺服器端內部將請求轉發給另外一個資源,瀏覽器只知道發出了請求並得到了響應結果,並不知道在伺服器程式內部發生了轉發行為。
RequestDispatcher.forward方法的呼叫者與被呼叫者之間共享相同的request物件和response物件,它們屬於同一個訪問請求和響應過程;
而HttpServletResponse.sendRedirect方法呼叫者與被呼叫者使用各自的request物件和response物件,它們屬於兩個獨立的訪問請求和響應過程。
用request的各種方法輸出request中的各種方法,新建頁面requestApp1.jsp原始碼如下:
requestApp1.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.*" %>
<html>
<head>
</head>
<body>
請求資訊如下:<br>
請求的方法是:<%=request.getMethod()%>
<br>
請求的URI是:<%=request.getRequestURI()%>
<br>
請求的協議是:<%=request.getProtocol()%>
<br>
接受客戶提交資訊的頁面路徑是:<%=request.getServletPath()%>
<br>
請求的協議是:<%=request.getProtocol()%>
<br>
請求中的查詢字串是:<%=request.getQueryString()%>
<br>
請求資訊的總長度是:<%=request.getContentLength()%>
<br>
伺服器名稱是:<%=request.getServerName()%>
<br>
提供HTTP服務的伺服器埠號是:<%=request.getServerPort()%>
<br>
客戶端IP地址是:<%=request.getRemoteAddr()%>
<br>
客戶端機器的名稱是:<%=request.getRemoteHost()%>
<br>
HTTP標頭檔案中User-Agent的值是:<%=request.getHeader("User-Agent")%>
<br>
HTTP標頭檔案中accept的值是:<%=request.getHeader("accept")%>
<br>
HTTP標頭檔案中Host的值是:<%=request.getHeader("Host")%>
<br>
HTTP標頭檔案中accept-encoding的值是:<%=request.getHeader("accept-encoding")%>
<br>頭名字的一個列舉:
<% Enumeration enumHead=request.getHeaderNames();
while(enumHead.hasMoreElements())
{
out.println((String)enumHead.nextElement());
}
%>
<br>標頭檔案中指定頭名字的全部值的一個列舉:
<% Enumeration enum_headedValues=request.getHeaders("cookie");
while(enum_headedValues.hasMoreElements())
{
out.println((String)enum_headedValues.nextElement());
}
%>
</body>
</html>