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
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();
}
}