6.HttpServletRequest接口(重点)
6.1.代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息(服务器就自动创建对象);
6.2.继承自ServletRequest,并提供了与Http协议有关的方法,这些方法的主要功能是设置HTTP状态码和管理Cookie;
6.3.HttpServletRequest和ServletRequest均作为接口,作为一套规范;
6.4.这套规范的实现有部署它们的容器去实现(Tomcat,JBOSS等去实现)
HttpServletRequest常用方法实例:
1.获得客户机信息
String requestUrl = request.getRequestURL().toString();//得到请求的URL地址
String requestUri = request.getRequestURI();//得到请求的资源
String queryString = request.getQueryString();//得到请求的URL地址中附带的参数
String remoteAddr = request.getRemoteAddr();//得到来访者的IP地址
String remoteHost = request.getRemoteHost();//返回发出请求的客户机的完整主机名
int remotePort = request.getRemotePort();//返回客户机所使用的网络端口号
String remoteUser = request.getRemoteUser();
String method = request.getMethod();//得到请求URL地址时使用的方法
String pathInfo = request.getPathInfo();//返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头
String localAddr = request.getLocalAddr();//获取WEB服务器的IP地址
String localName = request.getLocalName();//获取WEB服务器的主机名
2.获得客户机请求头
String userAgent = request.getHeader("User-Agent");//获取指定请求头信息
Enumeration<String> headNames = request.getHeaderNames();//获取所有请求头信息
请求头信息汇总:(11项)
host:localhost:8080
//可以减少tcp连接建立次数
connection:keep-alive
content-length:62
accept:application/json, text/plain, */*
origin:http://localhost:8080
user:-1
user-agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36
content-type:application/json;charset=UTF-8
//告诉服务器链接是从哪过来的(主要作用是防盗链)
referer:http://localhost:8080/gledeye/html/web/
accept-encoding:gzip, deflate, br
accept-language:zh-CN,zh;q=0.9
3.获得客户机请求参数(客户端提交的数据)
3.1.在服务器端使用getParameter方法和getParameterValues方法接收表单参数
getParameter(String)方法(常用)
getParameterValues(String name)方法(常用)
getParameterMap()方法(编写框架时常用)
4.获取参数时的乱码问题
request.setCharacterEncoding("utf-8");