Java Servlet中的SendRedirect与转发用例

时间:2012-05-22 17:38:38

标签: java html servlets

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

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

当执行POST操作时,我想再次显示相同的页面,此外我想保留由GET操作设置的实体参数。目前我在 doPost 方法结束时执行以下操作:

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

哪种方法非常好,但在阅读forward and sendRedirect之间的差异后,我认为我必须使用向前,但这不起作用,因为doGet方法不会像sendRedirect一样执行。我的方法是正确的,还是应该以另一种方式解决?

1 个答案:

答案 0 :(得分:8)

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

  • 清除可收藏的网址,可以通过电子邮件发送,例如
  • 没有通过点击“刷新”按钮重新提交修改的风险
  • 通过浏览器历史记录清理导航
  • 分隔get和post URL之间的职责

所以保持原样。在这种情况下,转发是一种不太理想的解决方案。