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:低.