HttpServletRequest对象
1、介绍:
HttpServletRequest 对象:主要作用是用来接收客户端发送过来的请求信息,例如:请求的参数,
发送的请求头信息等都属于客户端发来的信息,service()方法中形参接收的是 HttpServletRequest 接口的
实例化对象,表示该对象主要应用在 HTTP 协议上,该对象是由 Tomcat 封装好传递过来。
2、使用
1、常用方法
方法名 | 描述 |
---|---|
getRequestURL() | 获取客户端发出的请求时的完整 URL |
getRequestURI() | 获取请求行中的资源名称部分(项目名称开始) |
getQueryString() | 获取请求行中的参数部分 |
getMethod() | 获取客户端请求方式 |
getProtocol() | 获取 HTTP 版本号 |
getContextPath() | 获取 webapp 名字 |
System.out.println("获取请求URL:"+req.getRequestURL());
System.out.println("获取请求URI:"+req.getRequestURI());
System.out.println("获取请求行中的参数部分:"+req.getQueryString());
System.out.println("获取客户端请求方式:"+req.getMethod());
System.out.println("获取 HTTP 版本号:"+req.getProtocol());
System.out.println("获取 webapp 名字:"+req.getContextPath());
2、获取请求头
方法 | 描述 |
---|---|
getHeader(String) | 获取单个请求头内容 |
Enumeration getHeaderNames() | 获取所有的请求头名称集合 |
Request Headers:
System.out.println("获取单个请求头内容:"+req.getHeader("User-Agent"));
//获取单个请求头内容:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
Enumeration<String> headerNames = req.getHeaderNames();
while(headerNames.hasMoreElements()) {
String headerName = headerNames.nextElement();
System.out.println(headerName);
}
/*
host
connection
pragma
cache-control
upgrade-insecure-requests
user-agent
sec-fetch-mode
sec-fetch-user
accept
sec-fetch-site
accept-encoding
accept-language
cookie
*/
3、获取客户端请求参数(客户端提交的数据)
方法 | 描述 |
---|---|
getParameter(name) | 获取指定名称参数的值 |
getParameterValues(name) | 获取指定名称参数的所有值 |
getParameterNames() | 获取一个包含请求消息中的所有参数名的 Enumeration 对象 |
getParameterMap() | 返回一个保存了请求消息中的所有参数名称和值的 Map 对 |
getParameter
//http://127.0.0.1:8080/Servlet01/test?uname=nb&pwd=123
System.out.println("获取uname:"+req.getParameter("uname"));//获取uname:nb
getParameterValues
//http://127.0.0.1:8080/Servlet01/test?uname=nb&pwd=123&hobby=sing&hobby=dance
System.out.println("获取uname:"+req.getParameter("uname"));
String[] hobbys = req.getParameterValues("hobby");
for(String h:hobbys) {
System.out.println(h);
}
/*
sing
dance
*/
getParameterNames
//http://127.0.0.1:8080/Servlet01/test?uname=nb&pwd=123&hobby=sing&hobby=dance
Enumeration<String> ParameterNames = req.getParameterNames();
while(ParameterNames.hasMoreElements()) {
String parameterName = ParameterNames.nextElement();
System.out.println(parameterName);
}
/*
uname
pwd
hobby
*/
getParameterMap
//http://127.0.0.1:8080/Servlet01/test?uname=nb&pwd=123&hobby=sing&hobby=dance
Map<String,String[]> map = req.getParameterMap();
for(String key:map.keySet()) {
System.out.print(key+":");
for(String value:map.get(key)) {
System.out.print(value+" ");
}
System.out.println();
}
/*
uname:nb
pwd:123
hobby:sing dance
*/