1、请求方不同
redirect:客户端发起的请求
forward:服务端发起的请求
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调用方式>
欢迎分享,转载请注明来源:内存溢出
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)