java - SendRedirect 与 Java Servlet 中的转发用例

标签 java html servlets

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

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

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

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

它工作得很好,但在阅读了 forward and sendRedirect 之间的差异之后我以为我必须使用 forward,但是那不会起作用,因为 doGet 方法不会像 sendRedirect 那样被执行。那么我的方法是否正确,还是应该以其他方式解决?

最佳答案

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

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

所以一切保持原样。在这种情况下,转发是一个不如重定向的最佳解决方案。

关于java - SendRedirect 与 Java Servlet 中的转发用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10707136/

相关文章:

java - Maven 多模块项目 : can I jar-with-dependencies?

html - 如何为 div 变量创建动态类?

javascript - 有没有不会弄乱代码的所见即所得的 HTML 编辑器?

java - SWAGGER swagger-codegen 配置

Java 8 分组依据的逆向

Tomcat 映射错误

java - 将 servlet cookie 格式化为 http 友好格式

java - 带有数据库设计的 Servlet

java - 如何将新的 FXML 场景加载到 Broder Pane 中

javascript - Angular JS : Show/Close div based on select option without using controller or model