1. 程式人生 > >request常用方法及應用

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>