在学习做三重架构的web端的可CRUD的表格项目的时候,遇到的问题,我发现重定向和转发的用处很大,但是什么地方用重定向和转发,我还是以直没搞清,例如下图
我发现这类项目,都会用到重定向和转发, 但是在我的理解中,重定向就是可以访问服务器外的资源,而且重定向后地址会发生改变,而转发只能在服务器内跳转,并且地址栏不会发生改变。这个疑问困惑了好久,只能按照教程写,没有自己的思路
但是今天偶然看见了一篇帖子作者(Zzzer!),他就总结了重定向和转发之间的区别,而且特别全面。
而且也解决了我的疑惑,原文是这么写的
二、什么时候使用重定向,什么时候使用转发?
原则上: 要保持request域的数据时使用转发,要访问外站资源的时候用重定向,其余随便;
特殊的应用: 对数据进行修改、删除、添加操作的时候,应该用response.sendRedirect()。如果是采用了request.getRequestDispatcher().forward(request,response),那么操作前后的地址栏都不会发生改变,仍然是修改的控制器,如果此时再对当前页面刷新的话,就会重新发送一次请求对数据进行修改,这也就是有的人在刷新一次页面就增加一条数据的原因。
这里对照我学习的代码,发现完全正确
我这里的增删改查sevrlet中,的确用的都是重定向
还有一种区别就是:
重定向:会继续执行后面的代码
转发:会先执行转发的页面的代码,再回来执行后面的代码
感谢 Zzzer!博主
也希望大家一起努力
这是原文地址
https://blog.csdn.net/weixin_38447888/article/details/106315971