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.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的頭信息,如內容類型,內容長度,用戶代理等。