HttpServletResponse和HttpServletRequest詳解

HttpServletResponse,HttpServletRequest詳解

一、相關的接口

 

HttpServletRequestjava

HttpServletRequest接口最經常使用的方法就是得到請求中的參數,這些參數通常是客戶端表單中的數據。同時,HttpServletRequest接口能夠獲取由客戶端傳送的名稱,也能夠獲取產生請求而且接收請求的服務器端主機名及IP地址,還能夠獲取客戶端正在使用的通訊協議等信息。下表是接口HttpServletRequest的經常使用方法。web

說明:HttpServletRequest接口提供了不少的方法。瀏覽器

接口HttpServletRequest的經常使用方法服務器

方    法cookie

說    明session

getAttributeNames()併發

返回當前請求的全部屬性的名字集合post

getAttribute(String name)編碼

返回name指定的屬性值url

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類型

 

二、一些區別細節

1、ServletRequest
 
表明一個HTTP請求,請求在內存中是一個對象,這個對象是一個容器,能夠存放請求參數和屬性。
 
一、請求對象什麼時候被建立,當經過URL訪問一個JSP或者Servlet的時候,也就是當調用Servlet的service()、doPut()、doPost()、doXxx()方法時候的時候,執行Servlet的web服服務器就自動建立一個ServletRequest和ServletResponse的對象,傳遞給服務方法做爲參數。
 
二、請求對象由Servlet容器自動產生,這個對象中自動封裝了請求中get和post方式提交的參數,以及請求容器中的屬性值,還有http頭等等。當Servlet或者JSP獲得這個請求對象的時候,就知道這個請求時從哪裏發出的,請求什麼資源,帶什麼參數等等。
 
三、ServletRequest的層次結構
javax.servlet.ServletRequest 
  javax.servlet.http.HttpServletRequest
 
四、經過請求對象,能夠得到Session對象和客戶端的Cookie。
 
五、請求須要指定URL,瀏覽器根據URL生成HTTP請求併發送給服務器,請求的URL有必定的規範:
2、ServletResponse
 
也是由容器自動建立的,表明Servlet對客戶端請求的響應,響應的內容通常是HTML,而HTML僅僅是響應內容的一部分。請求中若是還包含其餘資源會依次獲取,如頁面中含有圖片,會進行第二個http請求用來得到圖片內容。
相應對象有如下功能:
一、向客戶端寫入Cookie
二、重寫URL
三、獲取輸出流對象,向客戶端寫入文本或者二進制數據
四、設置響應客戶端瀏覽器的字符編碼類型
五、設置客戶端瀏覽器的MIME類型。
相關文章
相關標籤/搜索