learning...|

MerielVaren

园龄:4年7个月粉丝:0关注:0

📂Java
2022-07-13 10:12阅读: 447评论: 0推荐: 0

请求转发和重定向的区别

请求转发是一个请求一次响应

 

重定向是两次请求两次响应。

一、转发
 转发是指当前Servlet将请求转交给其他的Servlet进行再次处理,转发特点:

  1.   转发时浏览器只发送1次请求
  2.   转发是在服务器端进行的
  3.   转发时浏览器的地址栏没有发生改变
  4.   浏览器感知不到转发的发生

二、重定向
 重定向是Servlet发送给浏览器的一个特殊的响应,这个响应告诉浏览器再去请求另一个地址,类似于政府的相关部门,该特殊响应的报文格式如下:

HTTP/1.1 302 Found
Location: http://localhost:8080/04_WEB_Servlet/target.html

 这个特殊响应的响应状态码是302,还有一个特殊的响应头Location指向的是一个新的地址,当浏览器收到302这个响应状态码以后,就会自动的再次向Location所指向的地址发送请求
 重定向的特点:

  1.   重定向时浏览器一共发送了2次请求
  2.   重定向是在浏览器端进行的
  3.   浏览器的地址栏会发生改变
  4.   浏览器可以感知到重定向的发生

三、页面跳转的时候什么时候用转发,什么时候用重定向?

  • 如果在上一个Servlet当中向request域当中绑定了数据,希望从下一个Servlet当中把request域里面的数据取出来,使用转发机制。

  • 剩下所有的请求均使用重定向。(重定向使用较多。)

四、转发带来的问题

如果最后一次转发的是一次提交,那么每一次刷新由于没有跳转的正确的页面都会重新提交,最终导致重复提交

 

  • 删除之后,重定向

  • 修改之后,重定向

  • 保存之后,重定向

  • 重定向:

    • 成功

    • 失败

 

五、转发和重定向的比较:

比较内容 转发 重定向
浏览器请求次数 1 2
发生的位置 服务器 浏览器
地址栏变化
浏览器感知
posted @   MerielVaren  阅读(447)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起