1

シンプルなユーザーアプリケーションがあります。アプリケーションでの一般的な対話を担当するMainControllerサーブレットがあります。このサーブレットは、URLパターン(/、/ indexなど)(その他の形式のインデックス)を「リッスン」します。またUserController、ログインを担当するサーブレットもあります。これは/CheckLoginurl-patternから「リッスン」します。

jspのurlにフォームがあり、/送信すると、のサーブレットを指します/CheckLogin。次に、UserControllerサーブレットがそれを処理し、ログインに問題がないか間違っているかをリダイレクトします/MainControllerユーザーがログインしているかどうかに応じて、表示するページを決定します)。

初めて送信した後、フォームページにURLがあることを除いて、すべてが問題なく機能します/CheckLogin。それを削除して/のみを表示したい(ログに記録されているかどうかに関係なく)。これを行うにはどうすればよいですか(Springやその他のフレームワークではなく、プレーンなJava EE)?

4

1 に答える 1

2

これが探しているものかどうかはわかりませんが、リダイレクトではなく転送を行うと、クライアントブラウザのURLは更新されません:RequestDispatcher#forward(javax.servlet.ServletRequest、javax.servlet .ServletResponse ;説明はForwardvsRedirectにあります

さらに、サーブレットではなくフィルターとして認証を実装することをお勧めします。そうすれば、フィルターを使用して、セキュリティで保護する必要があると思われるURLをインターセプトできます。

Webフレームワークを使用していない特定の理由はありますか?これらは、一般的に、セキュリティとルーティングを処理することを目的としています。

于 2012-08-03T19:33:13.813 に答える