1

我有一个简单的 html 页面,目的是对写入数据库的实体进行更改。页面有两种形式:

  • GET:选择要更改的实体
  • POST:处理对实体的更改并将其写入数据库

执行 POST 操作时,我想再次显示同一页面,此外,我想保持 GET 操作设置的实体参数。目前,我在doPost方法的末尾执行以下操作:

response.sendRedirect(path + "?entity=" + entityValue);

效果很好,但是在阅读了forward 和 sendRedirect之间的区别之后,我认为我必须使用 forward,但这不起作用,因为 doGet 方法不会像 sendRedirect 那样执行。那么我的方法是正确的还是应该以另一种方式解决?

4

1 回答 1

8

你的方法很棒。它使用post-redirect-get模式,它有几个优点:

  • 干净的 URL,可添加书签,例如可以通过电子邮件发送
  • 没有通过点击刷新按钮重新提交修改的风险
  • 浏览器历史记录的干净导航
  • 获取和发布 URL 之间的职责分离

所以保持一切原样。在这种情况下,转发是比重定向更不理想的解决方案。

于 2012-05-22T18:40:48.770 回答