请求转发与重定向

请求转发与重定向的区别?

1)请求转发是服务器内部跳转,所以地址栏的路径不会改变。重定向是浏览器再次发送请求,所以地址栏的路径会发生改变。

2)请求转发只发送一次请求,重定向发送两次请求。所以,请求转发可以共享request域(数据不会丢失),重定向不能共享request域(数据会丢失)。

3)请求转发只能在当前Web应用内部跳转,重定向可以跳出当前Web应用。

4)请求转发通过HttpServletRequest对象发起:resquest.getRequestDispatcher("服务器端绝对路径").forward(req,res),重定向通过HttpServletResponse对象 发起:response.sendRedirect("客户端绝对路径")。

请求转发与重定向的选择?

 1) 请求转发比重定向快。所以在使用请求转发和重定向都可以的时候建议使用请求转发。

 2) 请求转发只能在当前Web应用内部跳转,重定向可以跳出当前Web应用。所以要访问不同Web应用,特别是要访问另外一个Web站点上的资源时只能使用重定向。

请求转发和重定向的应用场景?

请求转发:请求后台处理业务逻辑,处理成功后请求转发到JSP页面显示处理结果,浏览器里URL不变。

重定向:避免在用户重新加载页面时两次调用相同的动作。如:提交表单,处理成功后重定向到另一个JSP,防止表单重复提交,浏览器里URL改变。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值