1. 程式人生 > >JavaEE請求物件

JavaEE請求物件

1.請求物件型別與生命週期

JavaEE請求物件要實現javax.servlet.http.HttpServletRequest介面。

在web元件開發中,不需要servlet和jsp自己建立物件,他們由web容器自動建立,並傳遞給
servlet和jsp的服務方法doGet和doPost,在服務處理方法中直接使用請求物件即可。

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException{}

2.請求物件的功能

(1).取得請求頭的資訊
(2).取得請求體中包含的提交資料
(3).取得客戶端的相關資訊
(4).取得服務端的相關資訊
(5).取得請求物件的屬性資訊

3.取得請求頭方法

(1). String getHeader(String name)
取得指定請求頭字串型別的內容

String browser=request.getHeader("User-Agent");

(2). int getIntHeader(String name)
取得指定請求頭整型型別的內容

int size=request.getIntHeader("Content-Length"
);

(3).long getDateHeader(String name)
取得指定請求頭日期型別的內容,返回long型表示從1970年1月1日0點開始計時的毫秒數

long datetime=request.getDateHeader("If-Modify-Since");

(4).Enumeration getHeaderNames()
取得所有請求頭的列表,以列舉型別返回

for(Enumeration enum=request.getHeaderNames();enum.hasMoreElements();){
    String headername=(String)enum
.nextElement(); System.out.println("name:"+headername); }

4.取得請求體中的資料

(1).String getParameter(String name)
取得指定名稱的資料型別,主要用於處理表單資料

員工編號:<input type="text" name="userid" />
String id=request.getParameter("userid");

(2).String[] getParameterValues(String name)
取得指定名稱的資料陣列,主要用於處理複選框和下拉選單

愛好:<input type="checkbox" name="behave" value="travel" />旅遊
     <input type="checkbox" name="behave" value="read" />讀書
     <input type="checkbox" name="behave" value="PE" />體育
String[] behaves=request.getParameterValues("behave");
for(int i=0;i<behaves.length;i++){
    out.println("behaves[i]");
}

(3).Enumeration getParameterNames()
取得所有引數的名稱

for(Enumeration enum=request.getParameterNames();enum.hasMoreElements();){
    String paramname=(String)enum.nextElement();
    System.out.println("name:"+paramname);
}

(4).Map getParameterMap()
取得所有請求物件的引數名和值,包裝在一個Map物件中,可以使用這個物件同時取得
所有引數名和引數值

Map params=request.getParameterMap();
Set names=params.keySet();
for(Object o:names){
    String paramname=(String)o;
    out.print(paramname+"="+params.get(paramname)+"<br/>");
}

(5).ServletInputStream getInputStream() throws IOExcepyion
取得客戶提交的流
注意:getInputStream()方法和getParameter()方法不能同時使用

5.取得客戶端相關資訊

(1).String getRemoteHost()
取得請求客戶的主機名

(2).String getRemoteAddr()
取得請求客戶的IP地址

(3).int getRemotePort()
取得請求客戶的埠號

(4).String getProtocol()
取得請求協議

(5).String getContentType()
取得請求體的內容型別,以MIME表達

(6).int getContentLength()
取得當請求體為二進位制流時請求體的長度

(7).String getProtocol()
取得請求的協議,一般為HTTP,返回HTTP1.1

6.取得服務端資訊

(1).String getServerName()
取得伺服器的HOST,一般為IP地址

(2).int getServerPort()
取得伺服器的接收埠