HttpServletResponse,HttpServletRequest详解
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類型。
?
轉載于:https://www.cnblogs.com/tidhy/p/6664252.html
總結
以上是生活随笔為你收集整理的HttpServletResponse,HttpServletRequest详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 原神清籁岛位置在哪?
- 下一篇: idea崩溃导致的svn插件丢失问题,