转发和重定向的原理及区别

原理:
转发是在服务端完成的事情,是对客户端的同一个request请求进行传递,浏览器并不知道(不产生新的请求)。(相当于拨打110,然后110内部给你分配到所属辖区)
重定向是浏览器来做的事情,重定向时,服务器返回一个状态是302的的response,里面包含了跳转的地址,由浏览器获得后,自动发送一个新的请求(产生新的请求)。(相当于拨打114查号台,然后根据返回的号码再次拨打)

区别:
1、语句不同
转发:request.getRequestDispatcher(path).forward(request, response);
重定向:response.sendRedirect(path);
2、是否可以共享request中的数据
转发:可以
重定向:不可以
3、跳转之后的显示地址
转发:跳转之前的地址
重定向:跳转之后的地址
4、原理不同
5、效率的不同
转发:高
重定向:低
6、跳转的范围是不一样的
转发:跳转的最大的范围就是当前服务器内
重定向:互联网中任意资源的位置
7、 路径支持的格式
绝对路径
转发:不支持
重定向:支持
根路径 (统一使用)转发和重定向都支持;
”/“的含义
转发:当前的项目的名称
重定向:当前的服务器
相对路径(相对本身) 都支持;
8、是否重复提交表单
转发:会重复的提交表单数据
重定向:不会

  选择依据:
  
  A、如果响应的时候需要跳转到外网的服务器只可以使用重定向
  
  **B、跳转的时候如果需要携带数据,那么使用转发**
  
  C、是否涉及表单的重复提交,如果强调了不可以重复的提交表单那么跳转的时候只可以使用重定向
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值