我已经阅读了转发和重定向之间的区别。
http://grails.asia/grails-redirect-vs-forward
很抱歉,这个问题很幼稚,但在我看来,由于重定向返回到浏览器并且浏览器发出新请求,因此转发似乎更有效。所以我想知道为什么在通过使用更有效的forward实现相同目的时完全使用重定向?在某些情况下,使用的正确方法是重定向而不是转发。感谢帮助!
答案 0 :(得分:2)
这里的主要区别是浏览器在重定向中被“触摸”(已经提到)。
很容易在登录用例中进行演示。
用户获得一个/login
页面并向/doLogin
提交登录表单,这将显示其/profile
页面。登录操作将验证用户输入。
关键区别在于:如果该操作执行forward
操作,则用户将在url框中看到/doLogin
。这就是为什么该操作应执行redirect
,以便用户在URL框中看到/profile
并且浏览器可以正确处理反向导航的原因。
对于不需要在浏览器历史记录中进行任何状态更改的其他操作,可以使用forward
。