1

データベースに書き込まれたエンティティに変更を加える目的の単純な html ページがあります。ページには次の 2 つの形式があります。

  • GET: 変更するエンティティを選択します
  • POST: エンティティへの変更を処理し、データベースに書き込みます

POST アクションが実行されたときに、同じページを再度表示したいのに加えて、GET アクションによって設定されたエンティティー・パラメーターを保持したい。現在、doPostメソッドの最後で次のことを行っています。

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

これは問題なく動作しますが、 forward と sendRedirectの違いを読んだ後、 forwardを使用する必要があると思いましたが、sendRedirect のように doGet メソッドが実行されないため、それは機能しません。私のアプローチは正しいですか、それとも別の方法で解決する必要がありますか?

4

1 に答える 1

8

あなたのアプローチは素晴らしいです。post-redirect-getパターンを使用します。これにはいくつかの利点があります。

  • ブックマーク可能で、たとえば電子メールで送信できるクリーンな URL
  • [更新] ボタンを押して変更を再送信するリスクがない
  • ブラウザ履歴のクリーンなナビゲーション
  • 取得 URL と投稿 URL の間の責任の分離

したがって、すべてをそのままにしてください。この場合、転送はリダイレクトよりも最適なソリューションではありません。

于 2012-05-22T18:40:48.770 に答える