Servlet ServletRequest接口

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.zaixian;

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.zaixian.ServletRequest</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>ServletRequest</servlet-name>
        <url-pattern>/welcome</url-pattern>
    </servlet-mapping>
</web-app>

ServletRequest接口的其他示例

ServletRequest的示例显示所有头信息
在这个例子中,显示servlet的头信息,如内容类型,内容长度,用户代理等。


上一篇: 使用NetBeans创建Servlet 下一篇: Servlet显示所有头信息