HttpServletResponse,HttpServletRequest詳解

來源:互聯網
上載者:User

標籤:value   設定   let   發送請求   並發   header   擷取   prot   table   

HttpServletResponse,HttpServletRequest詳解 1、相關的 介面

HttpServletRequest

HttpServletRequest介面最常用的方法就是獲得請求中的參數,這些參數一般是用戶端表單中的資料。同時,HttpServletRequest介面可以擷取由用戶端傳送的名稱,也可以擷取產生請求並且接收請求的伺服器端主機名稱及IP地址,還可以擷取用戶端正在使用的通訊協定等資訊。下表是介面HttpServletRequest的常用方法。

說明:HttpServletRequest介面提供了很多的方法。

介面HttpServletRequest的常用方法

方    法

說    明

getAttributeNames()

返回當前請求的所有屬性的名字集合

getAttribute(String name)

返回name指定的屬性值

getCookies()

返回用戶端發送的Cookie

getsession()

返回和用戶端相關的session,如果沒有給用戶端分配session,則返回null

getsession(boolean create)

返回和用戶端相關的session,如果沒有給用戶端分配session,則建立一個session並返回

getParameter(String name)

擷取請求中的參數,該參數是由name指定的

getParameterValues(String name)

返回請求中的參數值,該參數值是由name指定的

getCharacterEncoding()

返回請求的字元編碼方式

getContentLength()

返回請求體的有效長度

getInputStream()

擷取請求的輸入資料流中的資料

getMethod()

擷取發送請求的方式,如get、post

getParameterNames()

擷取請求中所有參數的名字

getProtocol()

擷取請求所使用的協議名稱

getReader()

擷取請求體的資料流

getRemoteAddr()

擷取用戶端的IP地址

getRemoteHost()

擷取用戶端的名字

getServerName()

返回接受請求的伺服器的名字

getServerPath()

擷取請求的檔案的路徑

 

HttpServletResponse

在Servlet中,當伺服器響應用戶端的一個請求時,就要用到HttpServletResponse介面。設定響應的類型可以使用setContentType()方法。發送字元資料,可以使用getWriter()返回一個對象。下表是介面HttpServletResponse的常用方法。

介面HttpServletResponse的常用方法

       方    法

說    明

addCookie(Cookie cookie)

將指定的Cookie加入到當前的響應中

addHeader(String name,String value)

將指定的名字和值加入到響應的頭資訊中

containsHeader(String name)

返回一個布爾值,判斷響應的頭部是否被設定

encodeURL(String url)

編碼指定的URL

sendError(int sc)

使用指定狀態代碼發送一個錯誤到用戶端

sendRedirect(String location)

發送一個臨時的響應到用戶端

setDateHeader(String name,long date)

將給出的名字和日期設定響應的頭部

setHeader(String name,String value)

將給出的名字和值設定響應的頭部

setStatus(int sc)

給當前響應設定狀態代碼

setContentType(String ContentType)

設定響應的MIME類型

 

2、一些區別細節

一、ServletRequest

 

代表一個HTTP請求,請求在記憶體中是一個對象,這個對象是一個容器,可以存放請求參數和屬性。

 

1、請求對象何時被建立,當通過URL訪問一個JSP或者Servlet的時候,也就是當調用Servlet的service()、doPut()、doPost()、doXxx()方法時候的時候,執行Servlet的web服伺服器就自動建立一個ServletRequest和ServletResponse的對象,傳遞給服務方法作為參數。

 

2、請求對象由Servlet容器自動產生,這個對象中自動封裝了請求中get和post方式提交的參數,以及請求容器中的屬性值,還有http頭等等。當Servlet或者JSP得到這個請求對象的時候,就知道這個請求時從哪裡發出的,請求什麼資源,帶什麼參數等等。

 

3、ServletRequest的階層

javax.servlet.ServletRequest 
  javax.servlet.http.HttpServletRequest

 

4、通過請求對象,可以獲得Session對象和用戶端的Cookie。

 

5、請求需要指定URL,瀏覽器根據URL產生HTTP請求並發送給伺服器,請求的URL有一定的規範:

 

二、ServletResponse

 

也是由容器自動建立的,代表Servlet對用戶端請求的響應,響應的內容一般是HTML,而HTML僅僅是響應內容的一部分。請求中如果還包含其他資源會依次擷取,如頁面中含有圖片,會進行第二個http請求用來獲得圖片內容。

相應對象有以下功能:

1、向用戶端寫入Cookie

2、重寫URL

3、擷取輸出資料流對象,向用戶端寫入文本或者位元據

4、設定響應用戶端瀏覽器的字元編碼類型

5、設定用戶端瀏覽器的MIME類型。

 

HttpServletResponse,HttpServletRequest詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.