1 forword是RequestDispatcher 接口(请求转发) ,而 redirect是HttpServletResponse 接口(请求重定向)
2、response.sendRedirect()不仅可以重定向到当前应用程序中的其他资源,它还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。而RequestDispatcher.forward 方法只能在同一个WEB应用程序内资源之间转发请求
3、从地址栏显示来说forward是服务器请求资源,即服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL。
5.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
6.从效率来说
forward:高.
redirect:低.
2、response.sendRedirect()不仅可以重定向到当前应用程序中的其他资源,它还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。而RequestDispatcher.forward 方法只能在同一个WEB应用程序内资源之间转发请求
3、从地址栏显示来说forward是服务器请求资源,即服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL。
5.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
6.从效率来说
forward:高.
redirect:低.
本文详细对比了请求转发(forward)与重定向(redirect)两种处理方式的不同之处,包括它们的工作原理、地址栏显示的变化、数据共享能力及效率等方面。
1130

被折叠的 条评论
为什么被折叠?



