Forward与Redirect
直接转发(Forward):也称转发,浏览器发出请求,服务器将response缓存区中的内容全部取出,返回给页面服务器。地址栏显示原来的URL。
一次请求只会有一次响应,所以地址栏不会发生变化。如果response被提交了,没有办法再次向页面提交数据。forward无法执行,而response缓存区中的内容将被清空,之前传过来的数据也将丢失,
- request.getRequestDispatcher(“new.jsp”).forward(request,response);
间接转发(Redirect):也称重定向,浏览器发出请求,服务器端在响应第一次请求的时候,让浏览器向另一个地址发出请求,然后得到响应。地址栏显示新的URL。
- response.sendRedirect(“xx.jsp”);
- 地址栏不同
- 从数据共享来说: forward:转发页面和转发到的页面可以共享request里面的数据. redirect:不能共享数据.
- 从运用地方来说: forward:一般用于用户登陆的时候,根据角色转发到相应的模块. redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等
- 从效率来说: forward:高. redirect:低.