谈谈“请求转发”和“重定向”的区别!

sunrongrong 2009-06-10 10:20:54
求高手谈谈“请求转发”和“重定向”的区别。以及各自用法。补充谈谈URL重写,以及用法!谢谢。越详细越好!
...全文
401 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tim_Chase 2009-08-04
  • 打赏
  • 举报
回复
学习了..支持支持
qusic 2009-06-11
  • 打赏
  • 举报
回复
说简单点,转发是只在服务器端进行的,客户端只进行了一次请求。
重定向是服务器接受第一次请求后回复给浏览器一个重定向指令,
要求浏览器去访问另外一个URL,是服务器端和浏览器端交互进行的
客户端进行了两次请求。
weiluo12 2009-06-11
  • 打赏
  • 举报
回复
刚浏览到一个
URL重写
http://www.chedong.com/tech/google_url.html
a1405 2009-06-11
  • 打赏
  • 举报
回复
看了下说的都很全了,还有就是request范围内的属性,
请求转发时还有,重定向时则没有。
这也是很多时候用请求转发而不用重定向的原因~
小霍夫 2009-06-11
  • 打赏
  • 举报
回复
上面说了那么多了,也讲得很好
robyjeffding 2009-06-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 weiluo12 的回复:]
两种转向的区别:
a.forward跳转到的页面能够接受到request设置的属性,而sendRedirect不能
(所它得使用比request范围更广的session设置属性)
b.forward跳转到的页面不必写全路径名,而sendRedirect必须写全路径名
c.forward不能跳转到此web项目以外的连接,而sendRedirect可以跳转到此web项目以外的连接
d.forward跳转后地址栏显示不变,而sendRedirect跳转后显示的是目标的地址信息
e.for…
[/Quote]
支持一下,讲得很详细了
izard999 2009-06-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 weiluo12 的回复:]
两种转向的区别:
a.forward跳转到的页面能够接受到request设置的属性,而sendRedirect不能
(所它得使用比request范围更广的session设置属性)
b.forward跳转到的页面不必写全路径名,而sendRedirect必须写全路径名
c.forward不能跳转到此web项目以外的连接,而sendRedirect可以跳转到此web项目以外的连接
d.forward跳转后地址栏显示不变,而sendRedirect跳转后显示的是目标的地址信息
e.for…
[/Quote]
这个讲得很好了.
UP
heavilyarmed 2009-06-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 weiluo12 的回复:]
两种转向的区别:
a.forward跳转到的页面能够接受到request设置的属性,而sendRedirect不能
(所它得使用比request范围更广的session设置属性)
b.forward跳转到的页面不必写全路径名,而sendRedirect必须写全路径名
c.forward不能跳转到此web项目以外的连接,而sendRedirect可以跳转到此web项目以外的连接
d.forward跳转后地址栏显示不变,而sendRedirect跳转后显示的是目标的地址信息
e.for…
[/Quote]


支持,讲的很好,学习了
lababawan 2009-06-10
  • 打赏
  • 举报
回复
请求转发时一次请求一次响应
重定向是两次请求两次响应
windy731 2009-06-10
  • 打赏
  • 举报
回复
转发流程:
客户端A(发送请求到服务器B) -> 服务器B(将请求发送到服务器C) -> 服务器C(处理请求,将结果返回到服务器B) -> 服务器B(将服务器C返回的结果返回到客户端A显示) -> 客户端A(显示结果)

重定向流程:
客户端A(发送请求到服务器B) -> 服务器B(将新的请求地址返回给客户端A) -> 客户端A(拿到新地址,并自动向新地址发送请求) -> 服务器C(处理请求并将结果返回给客户端A) -> 客户端A(显示结果)

PS:转发时地址栏中的地址不会改变,重定向会改变地址栏中的地址

URL重写,通常是通过过滤器实现,流程大致如下:
客户端A(发送请求到服务器B) -> 服务器B(分析重写的URL,将请求发送到对应的操作,并将结果返回到客户端A显示) -> 客户端A(显示结果)
qiheia 2009-06-10
  • 打赏
  • 举报
回复
1,转发时一次请求,重定向是2次请求
2,转发地址栏不会发生改变,重定向地址栏会改变
3,转发在项目内,重定向可以转到项目外。

url重写。。。。。。。
就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程。举个例子来说,如果通过浏览器进来的URL是 “www.mysite.com/UserProfile/1.aspx”,那么它可以被重写成 “www.mysite.com/UserProfile.aspx?ID=1”这样的URL,这样的网址可以更好的被网站所阅读。
  重写URL是非常有用的一个功能,因为它可以让你提高搜索引擎阅读和索引你的网站的能力;而且在你改变了自己的网站结构后,无需要求用户修改他们的书签,无需其他网站修改它们的友情链接;它还可以提高你的网站的安全性;而且通常会让你的网站更加便于使用和更专业。
  URL重写式会话跟踪的最低公分母?,当客户机不接受cookie时,server就使用URL重写作为会话跟踪的基本方式.URL重写,添加了附加数据(会话ID)到请求的URL路径上.
  会话ID必须被编码作为该URL字符串中的路径参数。该参数的名称为jsessionid,例如:
  http://www.myserver.com/catalog/index.html;jsessionid=1234
weiluo12 2009-06-10
  • 打赏
  • 举报
回复
两种转向的区别:
a.forward跳转到的页面能够接受到request设置的属性,而sendRedirect不能
(所它得使用比request范围更广的session设置属性)
b.forward跳转到的页面不必写全路径名,而sendRedirect必须写全路径名
c.forward不能跳转到此web项目以外的连接,而sendRedirect可以跳转到此web项目以外的连接
d.forward跳转后地址栏显示不变,而sendRedirect跳转后显示的是目标的地址信息
e.forward跳转的速度相对而言比sendRedirect跳转的速度要快

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧