重定向和请求转发,请求包含之间的联系和区别

一:重定向举例+画图
你向10086客服人员打了个电话说,我这个月的工资怎么还没发呢?
然后客服人员给了你一句话:先生您好你的工资不由我们发(相当于先给你一个状态码),请您
拨打120向他们要去(再给你一个Location的响应头,响应头是键值对的形式,键是的location,值是你等下要访问的URL)
然后你拿着10086给你的这个地址拨打了120,那边就对你说欢迎回我的朋友(给了你一个响应)

重定向的过程:
客户端发送请求,web服务器接收该请求后发送302状态码响应并且发送新的一个地址(location)给客户端浏览器,客户端接收到302则自动再发送一个新的请求,而这个请求就是新的location,既然是客户端发送的一个请求,就对web容器的request没关系了,它可以任意跳转到所有location。


二:请求转发举例+画图
班上有一个女生长的很好看,有一天他要你帮她做个题
要你第二天给她答案,你看了下题不会做,为了不在他面前出丑,
你就偷偷的去请教了一个学霸,学霸跟我说你自己先把一部分简单的做完(留头不留体),核心的部分和剩下另一部分简单的由我来做(留头要留体)
我很愉快的答应了,然后第二天把答案告诉她了

在这个例子中:女同学知不知道其实这道题是学霸做的,[答案是不知道],她只知道,她给了我题目,我还了他答案(一次请求一次响应)
注意:[在一个请求链中要涉及到多个servlet,但他只是一个请求]
请求转发中第一个servlet是留头不留体的
如果你非要在第一个servlet中写响应体:有两种情况:1.根本就不会把内容显示在浏览器(客户端)中 2.会抛出异常
这里说简单的部分:其实是想象成了响应头,因为发送响应头这个操作很简单吗

转发的过程:
客户端浏览器发送请求,web服务器接收请求再进行在内部跳转,什么意思呢,也就是说,
跳转只能在自己所在的web容器下的url,而不能跳转出去其他的url。


三:请求包含举例+画图
我接了一个项目,要一个月之内做完,但是我短时间之内做不完
于是我就找到了张三,张三也同意了

在这个例子里:不是我不会做,而是我一个人做不完,需要有一个帮手共同完成(而在请求转发中:就是我不会做)
第一个servlet:留头要留体(因为是我请别人做,可能我做的稍微多一点)
之后的servlet:只会留体(就算有头也不会发送到客户端)
其实请求包含:就相当于把一个servlet的内容,分别写到了两个servlet中
 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值