转发和重定向的区别

转发和重定向的区别

  1. 转发是一次请求。因此浏览器地址栏上的地址不会发生变化。

  2. 重定向是两次请求。因此浏览器地址栏上的地址会发生变化

  3. 转发的代码实现:request.getRequestDispatcher(“/index”).forward(request,response);

  4. 重定向的代码实现:response.sendRedirect(“/webapproot/index”);

  5. 转发是服务器内部资源跳转,由服务器来控制。不可实现跨域访问。

  6. 重定向可以完成内部资源的跳转,也可以完成跨域跳转

  7. 转发的方式可以访问WEB-INF 目录下受保护的资源

  8. 重定向先锋岗与浏览器重新发送了一次请求,在浏览器直接发送的 请求是无法访问WEB-INF目录下受保护的资源的。

  9. 转发原理:

    1. 假设发送了 /a 请求,执行了 AServlet
    2. 从 AServlet 中通过request.getRequestDispatcher("/b").forward(request,response);转发到 BServet
    3. 从 AServlet 跳转到 BServlet 是服务器内部来控制的。对于浏览器而言,浏览器只发送了一个 /a 请求
  10. 重定向原理:

    1. 假设发送了 /a 请求,执行了 AServlet
    2. 从 AServlet 中通过response.sendRedirect("/webapproot/b")重定向到 BServlet
    3. 此时服务器会将请求路径/webapproot/b响应给浏览器
    4. 浏览器会自发的再次发送/webapproot/b请求来访问 BServlet
    5. 因此对于重定向来说,发送了两次请求,一次是/webapproot/a,另一次是/webapproot/b

在 SpringMVC 里面怎么完成转发???
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值