十 ServletRequest

當客戶端發送一個請求到服務器,servlet容器創建ServletRequest 和ServletResponse 對象,把它們當作參數傳入到service()方法中。請求對象提供了對請求信息的訪問,錄入請求頭和請求數據。

 

首先我們看一個例子然後看一下ServletRequest接口中可用的方法:

 

示例1:Servlet getParameter()方法展示用戶輸入

 

在這個例子中,展示使用getParameter()方法返回給定參數的值。

 

在html表但中,我們獲取用戶輸入(name &age),存儲在對應的uname,uage參數中。

 

index.html:

<form action="details" method="get">

User Name: <input type="text" name="uname"><br>

User Age: <input type="text" name="uage"><br>

<input type="submit" value="submit">

</form>

 

MyServletDemo.java

在此servlet類中,我們通過getparameter()方法獲取參蘇和,該方法輸入ServletRequest接口。在這個例子中,我們有doGet()方法的HttpServletRequest參數,HttpServletRequest實現了ServletRequest接口,這就是爲什麼getparameter()方法對req對象時可用的。

 

得到這些值後,我們把他們寫入到webpage中。

import javax.servlet.http.*;

import javax.servlet.*;

import java.io.*;

public class MyServletDemo extends HttpServlet{

public void doGet(HttpServletRequest req,HttpServletResponse res)

throws ServletException,IOException

{

res.setContentType("text/html");

PrintWriter pwriter=res.getWriter();



String name = req.getParameter("uname");

String age = req.getParameter("uage");

pwriter.println("Name: "+name);

pwriter.println("Age: "+age);

pwriter.close();

}

}

 

web.xml

 

這是將servlet映射到url的部署描述符文件。因爲我們的表單有詳細信息頁面作爲action,所以我們將servlet類映射到詳細信息頁面。

<web-app>

<display-name>BeginnersBookDemo</display-name>

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

<welcome-file>default.html</welcome-file>

<welcome-file>default.htm</welcome-file>

<welcome-file>default.jsp</welcome-file>

</welcome-file-list>

<servlet>

<servlet-name>BeginnersBook</servlet-name>

<servlet-class>MyServletDemo</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>BeginnersBook</servlet-name>

<url-pattern>/details</url-pattern>

</servlet-mapping>

</web-app>

 

 

ServletRequest 接口中的方法:

1) String getParameter(String name): 返回制定參數的String值,如果不存在該參數則返回null.

 

2) Enumeration getParameterNames(): 它返回字符串對象的枚舉,其中包含請求中參數的名稱。

 

3) String[] getParameterValues(String name): 返回字符串數組,包含了參數中所有的值,如果沒有任何參數,則返回null.

 

4) String getCharacterEncoding(): 返回請求體使用的字符編碼名稱,如果沒有制定字符編碼則返回null.

 

5) void setCharacterEncoding(String env): 重載請求體中的字符編碼。

 

6) int getContentLength(): 返回請求內容的字節長度

 

9)String getContentType(): 返回請求體的MIME類型,如果未知則返回null.

 

注意:

我僅僅提到了一部分方法,如果你向看完整的方法清單,請參考官方文檔:

(office document)[https://docs.oracle.com/javaee/7/api/javax/servlet/ServletRequest.html]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章