0


HttpServletRequest详解

HttpServletRequest 详解

HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。

HttpServletRequest 接口继承自

ServletRequest 接口

,其主要作用是

封装 HTTP 请求消息

。由于 HTTP 请求消息分为

请求行

请求消息头

请求消息体

三部分。因此,在 HttpServletRequest 接口中定义了获取

请求行、请求头和请求消息体

的相关方法。

客户端:客户端(Client)或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。如万维网使用的

网页浏览器

,收寄电子邮件时的

电子邮件客户端

,以及

即时通讯的客户端软件

等。

请求头信息信息,是指postman中Header中的内容:
postman请求头

获取请求行信息的相关方法

当访问 Servlet 时,所有请求消息将被封装到 HttpServletRequest 对象中,请求消息的请求行中包含

请求方法

请求资源名

请求路径

等信息,为了获取这些信息,HttpServletRequest 接口定义了一系列方法:

获取请求行信息的常用方法

HttpServletRequest获取请求行的相关信息:

importorg.springframework.web.bind.annotation.*;importjavax.servlet.http.HttpServletRequest;@RestController@RequestMapping("/path")publicclassPersonController{@PostMapping("/person/add")publicvoidaddPerson(HttpServletRequest request){// 获取请求行的相关信息System.out.println("getMethod : "+ request.getMethod());System.out.println("getRequestURI:"+ request.getRequestURI());System.out.println("getQueryString:"+ request.getQueryString());System.out.println("getContextPath:"+ request.getContextPath());System.out.println("getServletPath:"+ request.getServletPath());System.out.println("getRemoteAddr : "+ request.getRemoteAddr());System.out.println("getRemoteHost : "+ request.getRemoteHost());System.out.println("getRemotePort : "+ request.getRemotePort());System.out.println("getLocalAddr : "+ request.getLocalAddr());System.out.println("getLocalName : "+ request.getLocalName());System.out.println("getLocalPort : "+ request.getLocalPort());System.out.println("getServerName : "+ request.getServerName());System.out.println("getServerPort : "+ request.getServerPort());System.out.println("getRequestURL : "+ request.getRequestURL());}}

postman测试:

postman测试

打印结果:

getMethod:POSTgetRequestURI:/path/person/addgetQueryString:nullgetContextPath:getServletPath:/path/person/addgetRemoteAddr:0:0:0:0:0:0:0:1getRemoteHost:0:0:0:0:0:0:0:1getRemotePort:63277getLocalAddr:0:0:0:0:0:0:0:1getLocalName:0:0:0:0:0:0:0:1getLocalPort:8080getServerName:localhostgetServerPort:8080getRequestURL:http://localhost:8080/path/person/add

获取请求消息头的相关方法

当浏览器发送 Servlet 请求时,需要通过

请求消息头向服务器传递附加信息

,例如,客户端可以接收的数据类型、压缩方式、语言等。为此,在 HttpServletRequest 接口中定义了一系列用于获取 HTTP 请求头字段的方法:
获取请求消息头的方法

读取 HTTP 请求消息头字段:

importorg.springframework.web.bind.annotation.*;importjavax.servlet.http.HttpServletRequest;importjava.util.Enumeration;@RestController@RequestMapping("/path")publicclassPersonController{@PostMapping("/person/add")publicvoidaddPerson(HttpServletRequest request){// 获取请求消息中的所有头字段Enumeration headerNames = request.getHeaderNames();//用循环遍历所有请求头,并通过 getHeader() 方法获取一个指定名称的头字段while(headerNames.hasMoreElements()){String headerName =(String) headerNames.nextElement();System.out.println(headerName +":"+ request.getHeader(headerName)+"<br />");}}}

postman测试:

postman测试
打印结果:

authorization:BearereyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjVmODEwMTJkLTlkYTUtNDcwMC1hNWUyLTk0NmQ2NjFlN2JhOCJ9.cycMQn6fMGQOymGhol7_dknpkFWD3uW7nwzlspqIBInTgJHTf4ROKjNLsETXo6el8IjrZk2HL6OtG78MKPQkgg<br/>user-agent:PostmanRuntime/7.26.8<br/>accept:*/*<br/>postman-token:325bdf26-ec7f-47ad-b7f4-37d4f8b6fd8b<br/>host:localhost:8080<br/>accept-encoding:gzip,deflate,br<br/>connection:keep-alive<br/>content-length:0<br/>

会发现,打印结果就是postman中Header中的所有属性元素。

标签: java postman http

本文转载自: https://blog.csdn.net/m0_58680865/article/details/125061824
版权归原作者 CUIYD_1989 所有, 如有侵权,请联系我们删除。

“HttpServletRequest详解”的评论:

还没有评论