阅读 48

全网最深入---request&response

一 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 获取请求头信息

20210426160118163.png

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:系统版本和浏览器版本
复制代码

防盗.png 三 Request其他功能 1 域对象(共享数据)

域对象:一个有作用范围的对象,可以在范围内共享数据

reqest域:代表一次请求的范围,可在一次请求转发的两个资源中共享数据

request的生命周期:当请求来的时候创建request对象,当响应生成的时候request就销毁了
复制代码

2哼哼3.png 2 请求转发

一种在服务器内部的资源跳转方式

哼哼哼哼哼哼.png 请求转发的特点:

1,一次请求多个servlet
2,可以借助request域对象进行,数据共享
3,地址栏不变(显示请求转发之前的地址)
4,请求转发是服务器内部的事情 不能跳转站外(网站以外, 例如百度)资源
复制代码

​ request作为一个域对象. 可以使用请求转发

request 生命周期 请求开始创建 响应结束效果 , request域对象 必须借助请求转发, 好处在于每一个人共享自己的数据 不会冲突

了解更多java技术栈b站:善知软件实训基地

了解java就业,职业规划,面试:IT一哥

————————————————

版权声明:本文为CSDN博主「我在等你来哟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/qq_44912827…

文章分类
代码人生
文章标签