本文承接上文HttpServletResponse
因为它们就像两兄弟.平时上网其实就是请求request和响应response这两个对象在与浏览器交互.
HttpServletRequest的概述
官方文档:
扩展 javax.servlet.ServletRequest 接口,为 HTTP servlet 提供请求信息。
servlet 容器创建 HttpServletRequest 对象,并将该对象作为参数传递给 servlet 的 service 方法(doGet、doPost,等等)。
HttpServletRequest的常用方法
- 1,请求行
getMethod();// 获得请求方式.GET
getRequestURL();//返回客户端发出请求时的完整URL。http://localhost:8080/ServletResponeDemo/request1
getRequestURI(); //返回请求行中的资源名部分。/ServletResponeDemo/request1
getContextPath(); //当前应用的虚拟目录./ServletResponeDemo
getQueryString() ; //返回请求行中的参数部分。
- 2,请求头
String getHeader(String name);// 根据头名称得到头信息值
Enumeration getHeaderNames();// 得到所有头信息name
Enumeration getHeaders(String name);//根据头名称得到相同名称头信息值
举个例子:
//在doGet方法中写以下代码
Enumeration names = req.getHeaderNames();
while(names.hasMoreElements()){
String e = (String) names.nextElement();
System.out.println(e+":"+req.getHeader(e));
}
就可以获得以下的http头信息:
host:localhost:8080
connection:keep-alive
upgrade-insecure-requests:1
user-agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36
accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
accept-encoding:gzip, deflate, sdch, br
accept-language:zh-CN,zh;q=0.8
一般在浏览器都可以看的到这类似的数据.
3,请求正文(自己去看文档试试吧)
表单常用的方法:- getParameter(name)
- getParameterValues(String name)
- getParameterNames()
- getParameterMap()
- getInputStream()
非表单数据常用方法
- void setAttribute(String name, Object value);
- Object getAttribute(String name);
- Void removeAttribute(String name);