HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。
Request常用方法
获得客户机信息
- getRequestURL方法返回客户端发出请求时的完整URL。
- getRequestURI方法返回请求行中的资源名部分。
- getQueryString 方法返回请求行中的参数部分。
- getPathInfo方法返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。
- getRemoteAddr方法返回发出请求的客户机的IP地址。
- getRemoteHost方法返回发出请求的客户机的完整主机名。
- getRemotePort方法返回客户机所使用的网络端口号。
- getLocalAddr方法返回WEB服务器的IP地址。
- getLocalName方法返回WEB服务器的主机名。
获得客户机请求头
- String getHeader(String name) 以字符串形式返回指定的请求头的值。
- Enumeration<String> getHeaders(String name) 适用于多值请求头
- Enumeration<String> getHeaderNames() 返回一个枚举,包含在该请求中包含的所有的头名。
- int getIntHeader(String name),适用于单值int类型的请求头
- long getDateHeader(String name),适用于单值毫秒类型的请求头
@WebServlet("/ServletDemo7")
public class ServletDemo7 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.setHeader("content-type", "text/html;charset=UTF-8");
PrintWriter printWriter = response.getWriter();
Enumeration<String> resheadinfos = request.getHeaderNames();//获取所有请求头
printWriter.write("获取所有的请求头如下:");
printWriter.write("<hr/>");
while(resheadinfos.hasMoreElements()){
String headname = (String) resheadinfos.nextElement();
String headvalue = request.getHeader(headname);
printWriter.write(headname+":"+headvalue);
printWriter.write("<br/>");
}
printWriter.write("<br/>");
printWriter.write("获取到的客户端Accept-Encoding请求头的值:");
printWriter.write("<hr/>");
String value = request.getHeader("Accept-Encoding");//获取Accept-Encoding请求头对应的值
printWriter.write(value);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
访问http://localhost:8080/ServletDemo7
获得客户机请求参数(客户端提交的数据)
- String getParameter(String name) 根据name获取请求参数
- String[] getParameterValues(String name) 根据name获取请求参数列表(常用)
- Map<String, String[]> getParameterMap() 返回的是一个Map类型的值,该返回值记录着前端(如jsp页面)所提交请求中的请求参数和请求参数值的映射关系。(编写框架时常用)
参考博文:https://www.cnblogs.com/xdp-gacl/p/3798347.html
才疏学浅之处,切莫在意。
——2019.7.12下午