標籤: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詳解