[JAVA]谈谈重定向与转发

  1. 重定向
  2. 转发
  3. 总结
    1. 转发与重定向的区别:

转发与重定向都能指定到另外一个URl。

重定向

response.sendRedirect(request.getContextPath()+"/redirect.jsp");

 

转发

request.getRequestDispatcher(request.getContextPath()+"/forwarding.jsp").forward(request,response);

 

request.getContextPath()获得的是web项目的根路径。


 

 

演示说明:

web.xml配置的是<url-pattern>/aaa</url-pattern>。
为了区分明显,项目中有一个redirect.jsp(表示重定向)和forwarding.jsp(表示转发),接下来通过动图分别查看路径得变化情况。

 

重定向:

 

 

转发:

 

可以很清楚的看到重定向的地址发生变化而转发的未改变

接下来看一张简单的图

 

总结

转发与重定向的区别:

  • 重定向是两次请求,转发只有一次请求;
  • 重新定向可以访问外部网站 转发只能访问内部资源;
  • 重定向的地址会发生改变变化,转发地址不变;
  • 转发性能高于重定向。
     

我们可以抽象理解:

重定向:你问我借钱,我没钱,我告诉你谁有钱你去找他。

转发:你问我借钱,我没钱,我去帮你借给你。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 xiaoxin1218@qq.com

文章标题:[JAVA]谈谈重定向与转发

文章字数:286

本文作者:周信

发布时间:2019-10-14, 19:15:24

最后更新:2023-05-03, 10:25:35

原始链接:http://zx21.xyz/2019/10/14/JAVA-谈谈重定向与转发/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

可为我打赏鼓励~