ServletRequest接口和HttpServletRequest接口


簡述:

在Servlet接口中的service(ServletRequest request , ServletResponse response)方法中有一個ServletRequest類型的參數。ServletRequest類表示來自客戶端的請求。當Servlet容器接收到客戶端要求訪問特定Servlet的請求時,容器先解析客戶端的原始請求數據,把它包裝成一個ServletRequest對象。當容器調用Servlet對象的service()方法時,就可以把ServletRequest對象作為參數傳給service()方法。

請求對象方法

ServletRequest接口提供了一系列用於讀取客戶端請求數據的方法,如下:
1)getContentLength():返回請求正文的長度。如果請求正文的長度位置,則返回-1.
2)getContentType():獲得請求正文的MIME類型。如果請求正文的類型未知,則返回null。
3)getInputStram():返回用於讀取請求正文的輸入流。
4)getLocalAddr():返回服務器短短的IP地址。
5)getLocalName():返回服務器端的主機名。
6)getLocalPort():返回服務器端的FTP端口號。
7)getParameter(String name):根據給定的請求參數名,返回來自客戶請求中的匹配的請求參數值。
8) getProtocal():返回客戶端和服務器端通信所用的協議的名稱及版本號。
9)getReader():返回用戶讀取字符串形式的請求正文的BufferedReader對象。
10)getRemoteAddr():返回客戶端的IP地址。
11)getRemoteHost():返回客戶端的主機名。
12)getRemotePort():返回客戶端的FTP端口號。
下面三個方法用戶在請求范圍內存取共享數據的方法:
1)setAttribute(String name , java.lang.Object object):在請求范圍內保存一個屬性,參數name標識屬性名,參數object標識屬性值。
2)getAttribute(String name):根據name參數給定的屬性名,返回請求范圍內的匹配的屬性值。
3)removeAttribute(String name):從請求范圍內刪除一個屬性。

HttpServletRequest接口

HttpServletRequest接口是ServletRequest接口的子接口。
HttpServlet類的重載service()方法及doGet()和doPost()等方法都有一個HttpServletRequest類型的參數,如:
  1. protected void service(HttpServletRequest req, HttpServletResponse resp)
  2. throws ServletException, IOException{........}

響應方法

HttpServletRequest接口提供了用於讀取HTTP請求中的相關信息的方法:
1)getContextPath():返回客戶端所請求訪問的web應用的URL入口。例如,如果客戶端訪問的URL為http://localhost:8080/helloapp/info,那么該發放返回“/helloapp”。
2)getCookies():返回HTTP請求中的所有的Cookie。
3)getHeader(String name):返回HTTP請求頭部的特定項。
4)getHeaderNames():返回一個Enumeration對象,它包含了HTTP請求頭部的所有項目名。
5)getMethod():返回HTTP請求方式,如post,或get。
6)getRequestURI():返回HTTP請求的頭部的第1行中的URI。
7)getQueryString():返回HTTP請求中的查詢字符串,即UTL中的“?”后面的內容。例如,如果客戶端訪問的URL為
http://localhost:8080/htlloapp/info?username=tom
,那么該方法返回“username=tome”。

根據SUN的Servlet API來創建的Servlet,無需費力的解析原始HTTP請求。解析原始HTTP請求的工作完全由Servlet容器來代勞。Servlet容器把HTTP請求包裝成HttpServletRequest對象,Servlet只需調用該對象的getXXX()方法,節能輕輕松松地讀取到HTTP請求中的各種數據。
轉載:http://www.cnblogs.com/hank-lkj/p/9365959.html

如果有幫助到您,望您打賞1元


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM