全网最深入---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 获取请求头信息
在这里插入图片描述

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一哥

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值