HttpServletRequest对象的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HttpServletRequest对象的使用相关的知识,希望对你有一定的参考价值。

浏览器将所有请求信息全部封装到HttpServletRequest对象中。

浏览器直接访问资源,默认提交的方式是Get方式。

 

实体内容:只有Post提交的参数会放到实体内容中。

 1 @WebServlet("/RequestDemo1")
 2 public class RequestDemo1 extends HttpServlet {
 3     /**
 4      * 这些动作服务器已经做了:
 5      * 1)tomcat服务器接收到浏览器发送的请求数据,然后封装到HttpServletRequest对象
 6      * 2)tomcat服务器调用doGet方法,把request对象传入到servlet中
 7      * @author MaoDoer
 8      *
 9      */
10     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
11     /**
12      * 3)从request对象取出请求数据。
13      */
14         /**
15          * 3.1请求行
16          */
17         System.out.println("请求方式:"+request.getMethod());//请求方式
18         System.out.println("URI:"+request.getRequestURI());//请求资源
19         System.out.println("URL:    "+request.getRequestURL()); 
20         System.out.println("http协议版本:"+request.getProtocol());//http协议版本
21         /**
22          * 3.2请求头
23          */
24         String host=request.getHeader("Host");//根据头名称拿到头的值
25         System.out.println(host);
26         Enumeration<String> enums = request.getHeaderNames();//获取请求请求头中所有的名称
27         while(enums.hasMoreElements()){
28             String headName = enums.nextElement();
29             String headerValue = request.getHeader(headName);
30             System.out.println(headName+"::"+headerValue);
31         }
32     }
33     
34     //为了接收Post方式提交的请求,Post方式提交的请求就一定要使用doPost方式请求
35     @Override
36     protected void doPost(HttpServletRequest request, HttpServletResponse resp) throws ServletException, IOException {
37         /**
38          * 3.3实体内容
39          */
40         InputStream in = request.getInputStream();//获取实体内容
41         byte[] buf=new byte[1024];
42         int len=0;
43         while((len=in.read(buf))!=-1){
44             String str = new String(buf,0,len);
45             System.out.println(str);
46         }
47     }
48 }

 

HttpServletRequest对象

HttpServletRequest对象作用是用于获取请求数据。核心的API:

请求行:

request.getMethod();//获取提交的方式

request.getRequestURI();request.getRequestURL();//获取资源

request.getProtocol();//请求http协议版本

请求头:

request.getHeader("名称");//根据名称获取请求值

request.getHeaderNames();//获取请求头中所有的名称

实体内容:

request.getInputStream();//获取实体内容的数据

 

以上是关于HttpServletRequest对象的使用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 @service 类中获取 HttpServletRequest 对象

HttpServletRequest对象的使用

JavaEE——HttpServletRequest对象

JavaEE——HttpServletRequest对象

JavaEE——HttpServletRequest对象

为啥 HttpServletRequest 对象在从一个 servlet 转发到另一个 servlet 时会发生变化?