ServletRequest
对象用于向Servlet提供客户端请求信息,例如内容类型,内容长度,参数名称和值,标头信息,属性等。
1. ServletRequest接口的方法
ServletRequest
接口中定义了许多方法。 其中常用一些如下:
方法 | 描述 |
---|---|
public String getParameter(String name) |
用于通过名称获取参数的值。 |
public String[] getParameterValues(String name) |
返回一个String 数组,其中包含给定参数名称的所有值。它主要用于获取“多选”列表框的值。 |
java.util.Enumeration getParameterNames() |
返回所有请求参数名称的枚举。 |
public int getContentLength() |
返回请求实体数据的大小;如果未知则返回-1 。 |
public String getCharacterEncoding() |
返回此请求输入的字符集编码。 |
public String getContentType() |
返回请求实体数据的Internet媒体类型;如果未知则返回null 。 |
public ServletInputStream getInputStream() throws IOException |
返回用于读取请求正文中的二进制数据的输入流。 |
public abstract String getServerName() |
返回接收请求的服务器的主机名。 |
public int getServerPort() |
返回接收到此请求的端口号。 |
2. ServletRequest示例
在此示例中,我们在servlet中显示提交的用户名称。这里使用了getParameter
方法,该方法返回给定请求参数名称的值。
启动Eclipse,创建一个动态web项目:ServletRequest,完整的项目结构如下所示:
如果不知道如何在Eclipse中创建一个动态web项目,请参考:
创建文件:index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ServletRequest示例</title>
</head>
<body>
<form action="login" method="get">
用户名:<input type="text" name="name"><br> <input
type="submit" value="登录">
</form>
</body>
</html>
Servlet类文件:LoginServlet.java
package com.xntutor.servlet;
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter pw = res.getWriter();
String name = req.getParameter("name");// will return value
pw.println("Welcome <b>" + name+"</b>");
pw.close();
}
}
配置文件:web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>ServletRequestDemo</display-name>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.xntutor.servlet.LoginServlet</servlet-class>
</servlet>
<!-- Defines the path to access this Servlet -->
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
运行上面示例代码,得到以下结果:
3. ServletRequest其他示例
这是一个显示所有标头信息的ServletRequest
示例。在此示例中将显示servlet的标头信息,例如内容类型,内容长度,用户代理等。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/276186.html