📜  Servlet – 请求接口

📅  最后修改于: 2022-05-13 01:54:46.702000             🧑  作者: Mango

Servlet – 请求接口

当 Servlet 接受来自客户端的调用时,它会收到两个对象,一个是 ServletRequest,另一个是 ServletResponse。 ServletRequest 封装了从客户端到服务器的通信,而 ServletResponse 封装了从 Servlet 到客户端的通信。 ServletRequest 的 Object 用于向 Servlet 提供客户端请求信息数据,作为内容类型、内容长度、参数名称、值、头信息和属性等。

ServletRequest 允许 Servlet 访问以下信息:

  • 参数名称由客户端传递
  • 客户端使用的协议 [scheme],例如 HTIP POST 和 PUT 方法
  • 发出请求的远程主机的名称
  • 接收它的服务器
  • 输入流用于从请求正文中读取二进制数据

ServletRequest 的子类允许 Servlet 检索更多基于协议的特定数据。例如,HttpServletRequest 包含用于访问基于 HTTP 的特定标头信息的方法。

ServletResponse 允许 Servlet

  • 设置回复的内容长度和 MIME 类型
  • 提供输出流和 Writer

通过 ServletResponse,Servlet 可以发送回复数据。 ServletResponse 的子类为 Servlet 提供了更多基于协议的特定功能。例如,up ServletResponse 可以包含允许 Servlet 控制 HTTP 特定标头信息的方法。

ServletRequest 接口的方法

Method

Description

public String getParameter(String name )This method is used to obtain the value of a parameter by its name
public String[] getParameterValues(String name)  This methods returns an array of String containing all values of given parameter name. It is mainly used for to obtain values of a Multi selected listed box.
java.util.Enumeration getParameterNames()this java.util.Enumeration getParameterNames() returns an enumeration for all of the request parameter names
public int getContentLength()Returns the size of the requested entity for the data, or a -1 if not known.
public String getCharacterEncoding()Returns the characters set encoding for the input of this current request.
public String getContentType()Returns the Internet Media Type(IMT) of the requested entity of data, or null if not known to it

显示用户名的 ServletRequest 示例

在这个例子中,我们在这个 servlet 中显示用户的名字,为此,我们使用了 getParameter 方法,它返回给定请求参数名称的值。我们在其中使用了 Servlet – Request Interface 并且当我们在本示例中使用它并运行时将成功建立该方法。

新索引.html

HTML
     Enter your name
      


Java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MockServ extends HttpServlet {
    public void doGet(HttpServletRequest req,
                      HttpServletResponse resp)
        // Uses throws exception
        throws ServletException, IOException
    {
        resp.setContentType("text/html");
        
        // sets Content Type
        PrintWriter ab = resp.getWriter();
  
        String Name = req.getParameter("Name");
        
        // thiswill return value
        ab.println(" Welcome User " + Name);
        
        // this will print the Name Welcome User
        ab.close();
    }
}


模拟服务器。Java

Java

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MockServ extends HttpServlet {
    public void doGet(HttpServletRequest req,
                      HttpServletResponse resp)
        // Uses throws exception
        throws ServletException, IOException
    {
        resp.setContentType("text/html");
        
        // sets Content Type
        PrintWriter ab = resp.getWriter();
  
        String Name = req.getParameter("Name");
        
        // thiswill return value
        ab.println(" Welcome User " + Name);
        
        // this will print the Name Welcome User
        ab.close();
    }
}