转发和重定向的区别?

栏目: Java · 发布时间: 5年前

内容简介:根据上面说明了转发和重定向的区别也可以很容易概括出来典型的应用场景:

实际发生位置不同,地址栏不同

  • 转发是发生在服务器的

    • 转发是由服务器进行跳转的 ,细心的朋友会发现,在转发的时候, 浏览器的地址栏是没有发生变化的 ,在我访问Servlet111的时候,即使跳转到了Servlet222的页面,浏览器的地址还是Servlet111的。也就是说 浏览器是不知道该跳转的动作,转发是对浏览器透明的 。通过上面的转发时序图我们也可以发现, 实现转发只是一次的http请求一次转发中request和response对象都是同一个 。这也解释了,为什么可以使用 request作为域对象进行Servlet之间的通讯。
  • 重定向是发生在浏览器的

    • 重定向是由浏览器进行跳转的 ,进行重定向跳转的时候, 浏览器的地址会发生变化的 。曾经介绍过:实现重定向的原理是由response的状态码和Location头组合而实现的。 这是由浏览器进行的页面跳转 实现重定向 会发出两个http请求request域对象是无效的,因为它不是同一个request对象 转发和重定向的区别

转发和重定向使用哪一个?

根据上面说明了转发和重定向的区别也可以很容易概括出来 。转发是带着转发前的请求的参数的。重定向是新的请求

典型的应用场景:

  1. 转发: 访问 Servlet 处理业务逻辑,然后 forward 到 jsp 显示处理结果,浏览器里 URL 不变
  2. 重定向: 提交表单,处理成功后 redirect 到另一个 jsp,防止表单重复提交,浏览器里 URL 变了

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Ruby on Rails Tutorial

Ruby on Rails Tutorial

Michael Hartl / Addison-Wesley Professional / 2012-8-6 / USD 44.99

"Ruby on Rails(TM) Tutorial by Michael Hartl has become a must-read for developers learning how to build Rails apps." -Peter Cooper, Editor of Ruby Inside Using Rails, developers can build web applica......一起来看看 《Ruby on Rails Tutorial》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具