一 Request和Response概述
·用户通过浏览器访问服务器时,Tomcat将HTTP请求中所有的信息都封装在Request对象中,开发人员可以通过request对象方法,来获取浏览器发送的所有信息.
·response对象表示web服务器给浏览器返回的响应信息,开发人员可以使用response对象的方法,设置要返回给浏览器的响应信息
Request体系结构
ServletRequest 接口
|
HttpServletRequest 接口
|
org.apache.catalina.connector.RequestFacade 实现类(由tomcat提供的) Response体系结构
ServletResponse 接口
|
HttpServletResponse 接口
|
org.apache.catalina.connector.ResponseFacade 实现类(由tomcat提供的)
二 Request获取Http请求信息
请求行: 请求方式 请求路径 协议版本
get会有参数
post没有参数
1 获取请求行信息
GET http://localhost:8080/requestLine?username=jack&password=1234 HTTP/1.1
· 例如:
请求方式 请求路径(若是get请求还会携带参数) 协议/版本
相关API:
★request.getMethod() :获取请求方式
★request.getRequestURI():获取请求路径
(了解)request.getQueryString():获取get请求的所有请求参数,以一个字符串形式返回
(了解)request.getProtocol():获取协议和版本
★request.getContextPath() : 获取项目应用路径
request.getRemoteAddr():获取请求者的ip
uri:统一资源标识符 ,用来声明它是一个路径
url:统一资源定位符 ,能准确的找到位置的一个路径
2 获取请求头信息
Host: localhost:8080
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36
Sec-Fetch-Dest: document
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Referer: http://localhost:8080/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
例如:
key:value的格式
referer:http://localhost/index.jsp
相关API:
String request.getHeader(“请求头name”):用来获取值为字符串的请求头
常见的请求头
referer:获取资源的来源,若是直接在地址栏输入的网址,referer就没有
user-agent:系统版本和浏览器版本
三 Request其他功能 1 域对象(共享数据)
域对象:一个有作用范围的对象,可以在范围内共享数据
reqest域:代表一次请求的范围,可在一次请求转发的两个资源中共享数据
request的生命周期:当请求来的时候创建request对象,当响应生成的时候request就销毁了
2 请求转发
一种在服务器内部的资源跳转方式
请求转发的特点:
1,一次请求多个servlet
2,可以借助request域对象进行,数据共享
3,地址栏不变(显示请求转发之前的地址)
4,请求转发是服务器内部的事情 不能跳转站外(网站以外, 例如百度)资源
request作为一个域对象. 可以使用请求转发
request 生命周期 请求开始创建 响应结束效果 , request域对象 必须借助请求转发, 好处在于每一个人共享自己的数据 不会冲突
了解更多java技术栈b站:善知软件实训基地
了解java就业,职业规划,面试:IT一哥
————————————————
版权声明:本文为CSDN博主「我在等你来哟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/qq_44912827…