转发:forward 重定向:redirect
顾名思义,forward是服务器内部重定向,客户浏览器发送http请求后,web服务器收到请求后进行请求处理和转发,最后发送给客户浏览器,客户端并不知道服务器发送的内容是从哪里来的,所以地址栏还是原来的地址;forward后,地址栏的url不会改变,客户浏览器实际只进行了一次访问请求。
redirect则是服务器收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通信的来往。Redirect后,是开始了一个新的Http请求,因此地址栏是redirect后的地址。当然forward也有缺点,就是forward的页面的路径如果是相对路径就会有些问题了。
共同点: 都实现了根据自己的条件实现的页面的跳转。 区别: 1.类别 2.概念 3.共享数据 4.应用 I.Redirect II.URL重新定向:可以是任意的URL III.不能共享request、session里面的数据 IV.一般用于用户注销登录时返回主页面和跳转到其它的网站等等 I.Forward II.页面的转发:只能是同一个Web应用程序的其他Web组件 III.转发页面和转发到的页面可以共性request、session里面的数据 IV.一般用于用户登录的时候根据角色转发到相应的模块等等