PRGパターン

名前しか知らなかった.以下の説明が分かりやすかったのでメモ.

PRGパターンとは、POST-REDIRECT-GETの組み合わせでHTTPでsubmitされたデータを処理する技法のことです。従来のforwardベースのsubmitでは以下のような問題がありました。

* URLの表示がずれる
* POSTした後に画面がRELOADされたときに再度POSTされてしまう
* 戻るボタン
* RELOADしたときにブラウザの警告メッセージが出る

このような問題への対処のための技法がPRGパターンです。

PRGでは、POSTとGETで役割を分担しています。POSTでサーバ側のModelの状態を更新、REDIRECTでGETへ受け渡し、GETでは画面の描画というように分かれています。forwardベースでRELOADされたときにPOSTされてしまうのは POSTで使ったresponseをそのまま使用しているためです.PRGではPOSTで使ったresponseはそのまま使わず、GETで常に responseを描画時に返すようになります.このようにしておくと、RELOADボタンが押下されても、GETメソッドでかつ空のパラメータが飛ぶため、Modelの状態を意図しない形で更新することがなくなります.

Teeda/gettingStarted - SeasarWiki