0

JSP、Java、JSTL、およびサーブレットを使用して、基本的なストア マネージャー Web アプリを実装しています。

MVC (Model-View-Controller) パターンの上に PRG (POST-Redirect-GET) パターンを実装しようとしています。

PRGが私が望むものに役立つかどうかはわかりません.

ユーザーがログインし、いくつかのログイン専用ページにアクセスし、ログアウトし、リフレッシュして戻る (または進む) と、ログイン ページにのみ移動できるようにしたいと考えています。

ログインしたユーザーがログイン専用ページに移動すると、問題が発生します。response.sendRedirect(urlInStringForm)すべてのリクエスト パラメータを削除します。確かに、HTTP セッションに何かを保存することはできますが、PageController サーブレットが 1 つある場合、そのサーブレットは確実にセッション データを探します。 PageController にリダイレクトされる他のリソースに移動します)。可能であれば、1-PageController アプローチを維持したいと思います。

負け負けの状況のようです。回避策はありますか?

4

1 に答える 1

2

コメント投稿者のBalusCのおかげで、私はそれを理解したと思います。これは非常に基本的なアプローチです。

  • ビューにはJSPを使用します。
  • Javaサーブレットをコントローラー(はい、複数のコントローラー)として使用し、常にresponse.sendRedirect(<url string>);その後に。を使用しreturn;ます。
    • ユーザーが処理のために何かを送信する必要がある場合は、POSTを使用します。別のビューにPOSTしないでください。常にサーブレット(コントローラ)に投稿してください。
    • ユーザーが処理せずに別のビューにジャンプする必要がある場合は、GETを使用します。
  • またはCookieを使用HttpSessionして一時的な通信データを保存します。JavaオブジェクトをHttpSession 属性内に配置することもできます。
  • モデルにはJavaBeansを使用します。JSTLを使用して、JSP内の優れた機能にアクセスします。
  • 1つの専用Javaクラスまたは専用Javaクラスのモジュール(おそらくBean)を使用して、組み込む可能性のあるデータベースと対話します。
  • 以下のBalusCが提供するリンクを使用して、特定のブラウザでキャッシュを防止するために必要なことを確認してください。そうすれば、ブラウザの戻るボタンをクリックすると、ログアウト後にログインのみの情報が表示される可能性がある厄介なインスタンスを排除できます。
  • 必要に応じてHTTPSを使用します。

「HeadFirstServletsandJSP」は初心者にとって良い読み物です。「ムラフのJavaサーブレットとJSP、第2版」も良さそうです。

于 2011-04-28T17:28:12.180 に答える