HttpServletResponse,HttpServletRequest详解
HttpServletResponse,HttpServletRequest詳解
1、相關(guān)的接口
HttpServletRequest
HttpServletRequest接口最常用的方法就是獲得請求中的參數(shù),這些參數(shù)一般是客戶端表單中的數(shù)據(jù)。同時(shí),HttpServletRequest接口可以獲取由客戶端傳送的名稱,也可以獲取產(chǎn)生請求并且接收請求的服務(wù)器端主機(jī)名及IP地址,還可以獲取客戶端正在使用的通信協(xié)議等信息。下表是接口HttpServletRequest的常用方法。
說明:HttpServletRequest接口提供了很多的方法。
接口HttpServletRequest的常用方法
| 方????法 | 說????明 |
| getAttributeNames() | 返回當(dāng)前請求的所有屬性的名字集合 |
| getAttribute(String name) | 返回name指定的屬性值 |
| getCookies() | 返回客戶端發(fā)送的Cookie |
| getsession() | 返回和客戶端相關(guān)的session,如果沒有給客戶端分配session,則返回null |
| getsession(boolean create) | 返回和客戶端相關(guān)的session,如果沒有給客戶端分配session,則創(chuàng)建一個(gè)session并返回 |
| getParameter(String name) | 獲取請求中的參數(shù),該參數(shù)是由name指定的 |
| getParameterValues(String name) | 返回請求中的參數(shù)值,該參數(shù)值是由name指定的 |
| getCharacterEncoding() | 返回請求的字符編碼方式 |
| getContentLength() | 返回請求體的有效長度 |
| getInputStream() | 獲取請求的輸入流中的數(shù)據(jù) |
| getMethod() | 獲取發(fā)送請求的方式,如get、post |
| getParameterNames() | 獲取請求中所有參數(shù)的名字 |
| getProtocol() | 獲取請求所使用的協(xié)議名稱 |
| getReader() | 獲取請求體的數(shù)據(jù)流 |
| getRemoteAddr() | 獲取客戶端的IP地址 |
| getRemoteHost() | 獲取客戶端的名字 |
| getServerName() | 返回接受請求的服務(wù)器的名字 |
| getServerPath() | 獲取請求的文件的路徑 |
?
HttpServletResponse
在Servlet中,當(dāng)服務(wù)器響應(yīng)客戶端的一個(gè)請求時(shí),就要用到HttpServletResponse接口。設(shè)置響應(yīng)的類型可以使用setContentType()方法。發(fā)送字符數(shù)據(jù),可以使用getWriter()返回一個(gè)對象。下表是接口HttpServletResponse的常用方法。
接口HttpServletResponse的常用方法
| ???????方????法 | 說????明 |
| addCookie(Cookie cookie) | 將指定的Cookie加入到當(dāng)前的響應(yīng)中 |
| addHeader(String name,String value) | 將指定的名字和值加入到響應(yīng)的頭信息中 |
| containsHeader(String name) | 返回一個(gè)布爾值,判斷響應(yīng)的頭部是否被設(shè)置 |
| encodeURL(String url) | 編碼指定的URL |
| sendError(int sc) | 使用指定狀態(tài)碼發(fā)送一個(gè)錯(cuò)誤到客戶端 |
| sendRedirect(String location) | 發(fā)送一個(gè)臨時(shí)的響應(yīng)到客戶端 |
| setDateHeader(String name,long date) | 將給出的名字和日期設(shè)置響應(yīng)的頭部 |
| setHeader(String name,String value) | 將給出的名字和值設(shè)置響應(yīng)的頭部 |
| setStatus(int sc) | 給當(dāng)前響應(yīng)設(shè)置狀態(tài)碼 |
| setContentType(String ContentType) | 設(shè)置響應(yīng)的MIME類型 ? |
2、一些區(qū)別細(xì)節(jié)
一、ServletRequest
?
代表一個(gè)HTTP請求,請求在內(nèi)存中是一個(gè)對象,這個(gè)對象是一個(gè)容器,可以存放請求參數(shù)和屬性。
?
1、請求對象何時(shí)被創(chuàng)建,當(dāng)通過URL訪問一個(gè)JSP或者Servlet的時(shí)候,也就是當(dāng)調(diào)用Servlet的service()、doPut()、doPost()、doXxx()方法時(shí)候的時(shí)候,執(zhí)行Servlet的web服服務(wù)器就自動(dòng)創(chuàng)建一個(gè)ServletRequest和ServletResponse的對象,傳遞給服務(wù)方法作為參數(shù)。
?
2、請求對象由Servlet容器自動(dòng)產(chǎn)生,這個(gè)對象中自動(dòng)封裝了請求中g(shù)et和post方式提交的參數(shù),以及請求容器中的屬性值,還有http頭等等。當(dāng)Servlet或者JSP得到這個(gè)請求對象的時(shí)候,就知道這個(gè)請求時(shí)從哪里發(fā)出的,請求什么資源,帶什么參數(shù)等等。
?
3、ServletRequest的層次結(jié)構(gòu)
javax.servlet.ServletRequest?
??javax.servlet.http.HttpServletRequest
?
4、通過請求對象,可以獲得Session對象和客戶端的Cookie。
?
5、請求需要指定URL,瀏覽器根據(jù)URL生成HTTP請求并發(fā)送給服務(wù)器,請求的URL有一定的規(guī)范:
?
二、ServletResponse
?
也是由容器自動(dòng)創(chuàng)建的,代表Servlet對客戶端請求的響應(yīng),響應(yīng)的內(nèi)容一般是HTML,而HTML僅僅是響應(yīng)內(nèi)容的一部分。請求中如果還包含其他資源會依次獲取,如頁面中含有圖片,會進(jìn)行第二個(gè)http請求用來獲得圖片內(nèi)容。
相應(yīng)對象有以下功能:
1、向客戶端寫入Cookie
2、重寫URL
3、獲取輸出流對象,向客戶端寫入文本或者二進(jìn)制數(shù)據(jù)
4、設(shè)置響應(yīng)客戶端瀏覽器的字符編碼類型
5、設(shè)置客戶端瀏覽器的MIME類型。
?
轉(zhuǎn)載于:https://www.cnblogs.com/tidhy/p/6664252.html
總結(jié)
以上是生活随笔為你收集整理的HttpServletResponse,HttpServletRequest详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 原神清籁岛位置在哪?
- 下一篇: idea崩溃导致的svn插件丢失问题,