forward和redirect的区别

forward和redirect的区别,第1张

1、请求方不同

redirect:客户端发起的请求

forward:服务端发起的请求

2、浏览器地址表现不同

redirect:浏览器地址显示被请求的

urlforward:浏览器地址不显示被请求的url

3、参数传递不同

redirect:重新开始一个request,原页面的request生命周期结束。

forward:forward另一个连接的时候。request变量是在其生命周期内的。另一个页面也可以使用,其实质是把目标地址include。

4、底层运作不同

redirect:发送的请求信息又回送给客户机,让客户机再转发到另一个资源上,需要在服务器和客户机之间增加一次通信。

forward:服务器端直接找到目标,并include过来。

5、定义不同

直接转发方式(Forward):客户端和浏览器只发出一次请求,Servlet、HTML、JSP或其它信息资源,由第二个信息资源响应该请求,在请求对象request中,保存的对象对于每个信息资源是共享的。

间接转发方式(Redirect)实际是两次>

参考资料来源:百度百科-forward

参考资料来源:百度百科-redirect

1、forward-------如果客户A向服务器B请求,服务器B处理了这个请求。struts的controller在服务器B处理请求的环节,调用action的具体execute方法。forward 发生在服务器内部, 在浏览器完全不知情的情况下发给了浏览器另外一个页面的response。
redirect ----如果客户A向服务器B请求,服务器B通知客户A向服务器C发出请求。客户A再想服务器C发出请求,服务器C才处理这个请求。例如你打开方法。>相同点:都能实现页面跳转或者是服务器资源的跳转;
不同点:1、sendRedirect(“目的地”) 是response 对象的方法,forward(request,response)是requestgetRequestDispatcher("目的地") 方法 返回的对象 requestDispatcher 的方法;
2、sendRedirect() 在客户端运行,会产生新的请求,地址栏显示新地址,forward()在服务端运行,地址栏的地址不变;
3、sendRedirect() 跳转之后,不能获取request中的对象,而forward()可以获取;
4、forward()速度更快。

大部分人对于URL转发和CNAME没有很多的了解,更不知道他们之间的区别是什么,毕竟他们都是可以由一个域名跳转到另外一个域名,看字面上是没有多大区别,所以我给大家科普下这两者到底区别在什么地方。

一、什么是URL

所谓 URL 转发,是通过服务器的特殊设置,将访问您当前域名的用户引导到您指定的另一个网络地址。 地址转向(也可称“URL转发”)即将一个域名指向到另外一个已存在的站点,英文称为“ URL FORWARDING ”。域名指向可能这个站点原有的域名或网址是比较复杂难记的。URL转发分为显性转发与隐性转发两种。

1、显性转发:

显性转发用的是301重定向技术;效果为浏览器地址栏输入acom ,打开网站内容是目标地址>

webservice调用方式>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13129182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-06
下一篇 2023-06-06

发表评论

登录后才能评论

评论列表(0条)

保存