ServletRequest接口
ServletRequest
的对象用于向Servlet提供客户端请求信息,如内容类型,内容长度,参数名称和值,标题信息,属性等。
ServletRequest接口的方法
ServletRequest
接口中定义了很多方法。 其中一些如下:
编号 | 方法 | 描述 |
---|---|---|
1 | public String getParameter(String name) |
用于通过名称获取参数的值。 |
2 | public String[] getParameterValues(String name) |
返回一个包含给定参数名称的所有值的String数组。它主要用于获取多选列表框的值。 |
3 | java.util.Enumeration getParameterNames() |
返回所有请求参数名称的枚举。 |
4 | public int getContentLength() |
返回请求实体数据的大小,如果未知则返回-1 。 |
5 | public String getCharacterEncoding() |
返回此请求输入的字符集编码。 |
6 | public String getContentType() |
返回请求实体数据的网络媒体类型,如果未知则返回null 。 |
7 | public ServletInputStream getInputStream() throws IOException |
返回用于读取请求正文中二进制数据的输入流。 |
8 | public abstract String getServerName() |
返回接收请求的服务器的主机名。 |
9 | public int getServerPort() |
返回接收到此请求的端口号。 |
ServletRequest显示用户名称的示例
在这个例子中,在servlet中显示用户提交上来的名字。这里使用getParameter()
方法返回指定请求参数名称的值。
打开Eclipse,创建一个名称为:ServletRequest 的动态Web网站项目,项目的目录结构如下 -
关键代码如下 -
ServletRequest.java -
package com.yiibai;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ServletRequest
*/
public class ServletRequest extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
// response.getWriter().append("Served at: ").append(request.getContextPath());
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
String name = request.getParameter("name");// will return value
if (name == null || name == "") {
name = "";
}
pw.println("Welcome " + name);
pw.close();
}
}
index.html -
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Welcome - ServletRequest</title>
</head>
<body>
<div style="text-align: center;">
<form action="/ServletRequest/welcome">
名字:<input type="text" name="name"><input type="submit"
value="提交">
</form>
</div>
</body>
</html>
web.xml -
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>ServletRequest</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>ServletRequest</servlet-name>
<servlet-class>com.yiibai.ServletRequest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletRequest</servlet-name>
<url-pattern>/welcome</url-pattern>
</servlet-mapping>
</web-app>
ServletRequest接口的其他示例
ServletRequest的示例显示所有头信息
在这个例子中,显示servlet的头信息,如内容类型,内容长度,用户代理等。