Servlet-获取请求参数
Servlet-获取请求参数
classDiagram ServletRequest <|-- HttpServletRequest : 继承 HttpServletRequest <|.. RequestFacade : 实现 note for ServletRequest "Java提供的请求对象根接口" note for HttpServletRequest "Java提供的对Http协议封装的请求对象接口" note for RequestFacade "Tomcat定义的实现类"
- Tomcat需要解析请求数据,封装为request对象,并且创建request对象传递到service方法中
- 使用request对象,查询JavaEE API文档的HttpServletRequest接口
Request获取请求数据功能的介绍
请求数据的格式:HTTP请求报文
- 请求行:
GET/request-demo/req1?username=zhangsan HTTP/1.1
String getMethod()
: 获取请求方式:GETString getContextPath()
: 获取虚拟目录(项目访问路径):/request-demoStringBuffer getRequestURL()
: 获取URL(统一资源定位符): http://localhost:8080/request-demo/req1String getRequestURI()
: 获取URL(统一资源标识符): /request-demo/req1String getQueryString()
: 获取请求参数(GET方式): usename=zhangsan&password=13
- 请求头:
User-Agent: Mozilla/5.0 Chrome/91.0.4472.106
String getHeader(String name):
根据请求头名称,获取值
- 请求体:
username=superbaby&password=123
BufferedReader getReader()
: 获取字符输入流ServletInputStream getInputStream()
: 获取字节输入流
@WebServlet("/req1")
public class RequestDemo1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// String getMethod(): 获取请求方式:GET
String method = req.getMethod();
System.out.println(method); //GET
// String getContextPath(): 获取虚拟目录(项目访问路径):/request-demo
String contextPath = req.getContextPath();
System.out.println(contextPath);
// StringBuffer getRequestURL(): 获取URL(统一资源定位符): http://localhost:8080/request-demo/req1
StringBuffer url = req.getRequestURL();
System.out.println(url.toString());
// String getRequestURI(): 获取URI(统一资源标识符): /request-demo/req1
String uri = req.getRequestURI();
System.out.println(uri);
// String getQueryString(): 获取请求参数(GET方式): usename=zhangsan&password=13
String queryString = req.getQueryString();
System.out.println(queryString);
//--------
// 获取请求头:user-agent: 浏览器的版本信息
String agent = req.getHeader("user-agent");
System.out.println(agent);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获取post请求体: 请求参数
// 1. 获取字符输入流
BufferedReader br = req.getReader();
// 2. 读取数据
String line = br.readLine();
System.out.println(line);
}
}