我是靠谱客的博主 难过鲜花,最近开发中收集的这篇文章主要介绍请求转发(forward) 与 重定向(Redirect)的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

请求转发(forward):request对象下的方法

    request.getRequestDispatcher(path).forward(request, response);

重定向(Redirect):response

    response.sendRedirect(path);


本质区别: 

1、请求的转发(forward)只发出了一次请求, 由浏览器发出一个quest到对应的Servlet中,在处理完成后,转发到别的Serlvet或者页面中继续处理,最后将这次的响应信息发给浏览器

2、重定向(Redirect)则发出了两次请求. 

    1)由浏览器发出一个quest到对应的Servlet中,在处理完成后,将这次的信息响应给浏览器。

    2)浏览器在接收到这次的响应后,按照响应提供的路径(path)再向该方向发起第二次Servlet重新处理。处理完成后,重新响  应给浏览器

forward的原理图:


Redirect的原理图:


具体区别:

①. 请求的转发: 地址栏是初次发出请求的地址.
     请求的重定向: 地址栏为最后响应的那个地址 
       
②. 请求转发: 在最终的 Servlet 中, request 对象和中转的那个 request 是同一个对象. 
     请求的重定向: 在最终的 Servlet 中, request 对象和中转的那个 request 不是同一个对象.       
   
③. 请求的转发: 只能转发给当前 WEB 应用的的资源
     请求的重定向: 可以重定向到任何资源. 
       
④. 请求的转发: / 代表的是当前 WEB 应用的根目录
     请求的重定向: / 代表的是当前 WEB 站点的根目录. 

最后

以上就是难过鲜花为你收集整理的请求转发(forward) 与 重定向(Redirect)的区别的全部内容,希望文章能够帮你解决请求转发(forward) 与 重定向(Redirect)的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部