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/tech/pnotes/264053.html