HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。
Request常用方法
获得客户机信息
getRequestURL方法返回客户端发出请求时的完整URL。getRequestURI方法返回请求行中的资源名部分。getQueryString 方法返回请求行中的参数部分。getPathInfo方法返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。getRemoteAddr方法返回发出请求的客户机的IP地址。getRemoteHost方法返回发出请求的客户机的完整主机名。getRemotePort方法返回客户机所使用的网络端口号。getLocalAddr方法返回WEB服务器的IP地址。getLocalName方法返回WEB服务器的主机名。
@RestController
public class UserController {
@PostMapping("/login")
public void login(HttpServletRequest request
) {
System
.out
.println(request
.getRequestURL());
System
.out
.println(request
.getRequestURI());
System
.out
.println(request
.getQueryString());
System
.out
.println(request
.getPathInfo());
System
.out
.println(request
.getRemoteAddr());
System
.out
.println(request
.getRemoteHost());
System
.out
.println(request
.getRemotePort());
System
.out
.println(request
.getLocalAddr());
System
.out
.println(request
.getLocalName());
}
}
获得客户机请求头
getHeader(string name)方法:StringgetHeaders(String name)方法:EnumerationgetHeaderNames()方法
@RestController
public class UserController {
@PostMapping("/login")
public void login(HttpServletRequest request
) {
Enumeration
<String> reqHeadInfos
= request
.getHeaderNames();
while (reqHeadInfos
.hasMoreElements()) {
String headName
= (String
) reqHeadInfos
.nextElement();
System
.out
.println(request
.getHeader(headName
));
}
System
.out
.println();
System
.out
.println(request
.getHeader("Accept-Encoding"));
System
.out
.println(request
.getHeaderNames());
}
}
PostmanRuntime/7.26.3
*/*
no-cache
769ff68c-b0a9-4160-acf9-fd608d1c6bc4
localhost:8080
gzip, deflate, br
keep-alive
0
gzip, deflate, br
org.apache.tomcat.util.http.NamesEnumerator@29ac4054
获得客户机请求参数(客户端提交的数据)
getParameter(String)方法(常用)getParameterValues(String name)方法(常用)getParameterNames()方法(不常用)getParameterMap()方法(编写框架时常用)