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的頭資訊,如內容型別,內容長度,使用者代理等。