请求转发与重定向

本文详细介绍了Web应用中两种常见的资源跳转方式——转发和重定向。转发是由服务器内部完成,保持请求上下文;重定向则是浏览器重新发起请求,不保留请求数据。在选择跳转方式时,若需要在多个Servlet间传递数据,应使用转发,否则推荐使用重定向以避免数据丢失。注意,重定向可能导致浏览器刷新问题。
摘要由CSDN通过智能技术生成

在一个web应用中有两种方式完成资源的跳转

  • 转发
  • 重定向

重定向和转发的区别

  • 代码
//转发:
//获取请求转发器对象
RequestDispatcher dispatcher=request.getRequeestDispatcher("不带项目名的路径");
//调用请求转发器的forward方法
dispatcher.forward(request,response);//合并一行代码
request.getDispatcher("不带项目名的路径").forward(request,response);
​
​
​
//重定向:
response.sendRedirect("带项目名的路径");
//带项目名的原因:因为是浏览器重新发送请求到新的servlet中

  • 形式
    • 转发:一次请求
    • 重定向:两次请求
  • 本质区别
    • 转发:由WEB服务器控制,A资源跳转到B资源,跳转动作在Tomcat服务器内部完成
    • 重定向:由浏览器完成
  • 如何选择
    • 如果上一个Servlet中向request域中存入了数据,想在下一个servlet中取出来,使用转发机制
    • 其他情况使用重定向
  • 跳转的资源没有要求,可以是任何合法的资源
  • 转发存在浏览器的刷新问题
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值