重定向(redirect)和转发(forward)的区别

重定向(redirect )和转发(forward)的区别


说明:此文仅做学习笔记之用。


一、概述重定向和转发的过程

重定向:当客户端发送一个请求到服务器,Web服务器在容器内部完成请求转发,然后将最终的结果发送给浏览器,整个过程都是在容器内部完成的。而对应到客户端,无论服务器内部如何处理,作为客户端浏览器都只提交了一个请求,因而客户端的的URL地址不会发生改变。

转发:浏览器第一次请求后,Web服务器向浏览器返回一个响应,客户端浏览器接收此响应后,重新向服务器发送一个新的http请求,这属于两次不同的请求,则上一次请求的request信息将丢失。由于服务器重定向了URL,所以在客户端浏览器中显示新的URL地址,所以重定向可以理解为客户端至少提交了两次请求。


一、总结区别

(1)重定向时浏览器的地址栏会发生改变;转发是浏览器上的地址栏不变。

(2)重定向实际上产生了至少两次请求,两次响应;而转发只发生了一次请求。

(3)重定向可以跳转到任意网页;而转发只能在服务器内部资源间进行转发。

【注意】:重定向路径一般需要加上下文路径(应用名);而转发的路径不需要加上下文路径(应用名)。
【例】:

request.getRequestDispatcher("login.jsp").forward(request, response);//转发到login.jsp

response.sendRedirect("login.jsp");//重定向到login.jsp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值