2010-11-29 6 views
0

はの私は、Springフレームワークで書かれたアプリケーションがあるとしましょう、と私は知りたい、私が入力したとき:
http://localhost:8080/test
リンク、何Tomcatは、この要求に対する応答を生成するために行うのでしょうか?
最初にすべてのフィルタを渡す必要がありますか?springアプリケーションのルートリンクを入力した後にtomcatは何をしますか?

URLを入力すると、http://localhost:8080/test/loginのような別のリンクに転送されますが、このリダイレクトはどこで実装されましたか?

私に説明するのが難しい場合は、その本をお勧めしてください、ありがとう!

答えて

1

このリクエストに対する応答を生成するためにtomcatは何を行いますか?

通常、Tomcatは "web.xml"ファイルで設定されているように、関連するDispatcherServletインスタンスにリクエストを送信します。これはSpring documentationに記載されています。

最初にすべてのフィルタを渡す必要がありますか?

はい。フィルタは、リクエストがサーブレットに渡される前(および後)に適用されます。

そして、私は、URLで入力した後に、それは常に、このリダイレクトが実装されましたhttp://localhost:8080/test/loginのような別のリンクに向けられますか?

どのようにセキュリティを実装したかによって異なります。これは、SpringSecurity、またはSpring MVCコントローラ、またはプレーンな(Spring以外の)サーブレット、フィルタ、(Tomcat固有の)Valveでのハードワイヤードロジックを使用して、Tomcatレベルで実行できます。

ログイン/セキュリティを実装する最良の方法についてのアドバイスをお探しの場合は、SpringSecurityの使用をお勧めします。 SpringSecurityはフィルタを使用して動作します。

私に説明することが難しい場合は、それに私に本をお勧めしてください、ありがとう!

オンラインSpringSpringSecurityのマニュアルは、どのような場所にも適しています。このドキュメントでは、特定のWebコンテナのコンテキストでリクエストがどのように処理されるかを正確に説明しない傾向がありますが、Tomcatのドキュメントとサーブレットの仕様から詳細を把握できるはずです。

+0

DispatcherServletが/ test/loginにリダイレクトする前に行うコードはどこですか? – MemoryLeak

+0

私が言ったように、あなたのセキュリティをどのように実装したかによって異なります。それはバルブやフィルタに含まれていても、DispatcherServletが呼び出すコントローラコードであってもかまいません。 –

0

コントローラにそのURLにマップされているものがある場合、Spring DispatcherServletはリクエストを送信して処理します。

コントローラが、次のビューが/ test/loginに対応するものであるとコントローラが判断した場合、ModelAndViewを設定するときに次のビューが指定されます。

+0

DispatcherServletが/ test/loginにリダイレクトする前に行うコードはどこですか? – MemoryLeak

+0

あなたはDispatcherServletに触れません。そのURLのControllerにリダイレクトする前にロジックを配置します。 – duffymo

関連する問題