Request

Request的作用:获取请求数据
获取过程:
1.浏览器会发送HTTP请求到后台服务器[Tomcat]
2.HTTP的请求中会包含很多请求数据[请求行+请求头+请求体]
3.后台服务器[Tomcat]会对HTTP请求中的数据进行解析并把解析结果存入到一个对象中
4.所存入的对象即为request对象,所以我们可以从request对象中获取请求的相关参数
5.获取到数据后就可以继续后续的业务,比如获取用户名和密码就可以实现登录操作的相关业务

Request对象
作用:是用来封装请求数据的对象

Request获取请求数据
HTTP请求数据总共分为三部分内容,分别是请求行、请求头、请求体,可用Request获取这三部分内容。
获取请求行数据
请求行包含三块内容,分别是请求方式、请求资源路径、HTTP协议及版本。
GET/request-demo/req1?username=zsHTTP/1.1
GET:请求方式
request-demo/req1?username=zs:请求资源路径
HTTP/1.1:HTTP协议版本
获取这三部分内容的方法
1.获取请求方式:GET
String getMethod();
2.获取虚拟目录(项目访问路径): /request-demo
String getContextPath();
3.获取URL(统一资源定位符): http://localhost:8080/request-demo/req1
StringBuffer getRequestURL();
4.获取URI(统一资源标识符): /request-demo/req1
String getRequestURI();
5.获取请求参数(GET方式): username=zhangsan&password=123
String getQueryString();

获取请求头数据
对于请求头的数据,格式为key: value如下:
User-Agent:Mozilla/5.0 Chrome/91.0.4472.106
根据请求头名称获取对应值的方法为:
String getHeader(String name);

获取请求体数据
浏览器在发送GET请求的时候是没有请求体的,所以需要把请求方式变更为POST,请求体中的数据格式如下:
username=zs&password=123
对于请求体中的数据,Request对象提供了如下两种方式来获取其中的数据
1.获取字节输入流,如果前端发送的是字节数据,比如传递的是文件数据,则使用该方法
ServletInputStream getInputStream();
2.获取字符输入流,如果前端发送的是纯文本数据,则使用该方法
BufferedReader getReader();

小结:
HTTP请求数据中包含了请求行、请求头和请求体,针对这三部分内容,Request对象都提供了对应的API方法来获取对应的值:
1.请求行
* getMethod()获取请求方式
* getContextPath()获取项目访问路径
* getRequestURL()获取请求URL
* getRequestURI()获取请求URI
* getQueryString()获取GET请求方式的请求参数
2.请求头
* getHeader(String name)根据请求头名称获取其对应的值
3.请求体
* 注意: 浏览器发送的POST请求才有请求体
* 如果是纯文本数据:getReader()
* 如果是字节数据如文件数据:getInputStream()

Request请求转发
什么是请求转发:一种在服务器内部的资源跳转方式。

请求转发的过程:
* 浏览器发送请求给服务器,服务器中对应的资源A接收到请求
* 资源A处理完请求后将请求发给资源B
* 资源B处理完后将结果响应给浏览器
* 请求从资源A到资源B的过程就叫请求转发
请求转发的实现方式
request.getRequestDispatcher("资源B的路径").forword(request,response);
请求转发的特点:
* 浏览器地址栏路径不发生变化
* 只能转发到当前服务器的内部资源,不能从一个服务器通过转发访问另一台服务器
* 一次请求,可以在转发资源间使用request共享数据,

posted @   wzh_Official  阅读(62)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示