转发:forward,是服务器行为
重定向:redirect,是客户端行为
从效率来看
请求转发(forward)的效率高
重定向(redirect)的效率低
从浏览器来看
转发(forward)是服务器请求资源,服务器直接访问目标地址的URL,把URL响应的内容直接读取出来,然后发给浏览器,而浏览器根本不知道服务器发送的内容,所以不会发生地址的改变。
重定向(redirect)是服务器根据逻辑发送一个状态码,告诉浏览器重新去请求那个地址,所以地址栏显示的是新的URL,也就是地址发生了改变。
从数据共享来说
forward:转发页面与转发到的页面可以共享request里面的数据,
redirect:不能共享数据
从运用地方来说
forward:一般用于用户登录的时候,根据角色转发到相应的模块
redirect:一般用于用户注销登录时返回主页面和跳转到其他的网站等