十 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]

 

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