黑马程序员技术交流社区

标题: forward() 与redirect()有啥区别? [打印本页]

作者: 王睿    时间: 2012-3-12 16:43
标题: forward() 与redirect()有啥区别?
forward() 与redirect()什么时候该用哪个呢?
作者: baypm_jy    时间: 2012-3-12 17:02
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,真正意义上的跳转,所以session,request参数都可以获取。
作者: 宋洪祥    时间: 2012-3-12 17:16
使用forward的时候浏览器不知道它所请求的具体资源来源,所以地址栏不会变;
使用redirect,服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL。

forward,转发页面和转发到的页面可以共享request里面的数据.
redirect,不能共享数据.
作者: 段玉超    时间: 2012-3-12 17:18
第一个 类似于 url重写   
第二个是返回 http 302 状态码




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2