我正在阅读有关Java Web开发最佳实践here的网页指南,并且我遇到了一个部分,提供了有关如何在控制器层中设计servlet行为的建议。
有人提到,如果对servlet的请求涉及对数据存储的编辑,则必须使用重定向,否则应使用转发到另一个URL。
虽然我理解重定向和转发之间的区别,但我无法弄清楚在这种情况下它是如何相关的。换句话说,我没有看到重定向而不是转发将如何阻止非幂等数据存储操作被重复的浏览器请求不必要地重复。
当然,在向控制器JSP发出请求后重定向到视图页面会改变URL,但它不会阻止故意再次尝试访问同一页面。
如果需要防止错误或不必要的数据库编辑,我的方法是在控制器层检查它,并在必要时重定向到适当的错误页面。
请告知。