処理
DispatcherServlet
は、リクエストを次のように処理します。
WebApplicationContext
が検索され、コントローラーおよびプロセス内の他の要素が使用できる属性としてリクエストでバインドされます。デフォルトでは、DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE
キーにバインドされています。ロケールリゾルバーはリクエストにバインドされ、プロセス内の要素がリクエストの処理(ビューのレンダリング、データの準備など)に使用するロケールを解決できるようにします。ロケール解決が不要な場合、ロケールリゾルバーは必要ありません。
テーマリゾルバーはリクエストにバインドされ、ビューなどの要素が使用するテーマを決定できるようにします。テーマを使用しない場合、無視できます。
マルチパートファイルリゾルバーを指定すると、リクエストはマルチパートについてインスペクションされます。マルチパートが見つかった場合、リクエストはプロセス内の他の要素によるさらなる処理のために
MultipartHttpServletRequest
にラップされます。マルチパート処理の詳細については、マルチパートリゾルバーを参照してください。適切なハンドラーが検索されます。ハンドラーが見つかると、そのハンドラー(プリプロセッサー、ポストプロセッサー、コントローラー)に関連付けられた実行チェーンが実行され、モデルをレンダリング用に準備します。あるいは、アノテーション付きコントローラーの場合、ビューを返す代わりに、レスポンスを(
HandlerAdapter
内で)レンダリングできます。モデルが返されると、ビューがレンダリングされます。モデルが返されない場合(おそらくセキュリティ上の理由で、プリプロセッサーまたはポストプロセッサーがリクエストをインターセプトしているため)、リクエストはすでに満たされている可能性があるため、ビューはレンダリングされません。
WebApplicationContext
で宣言された HandlerExceptionResolver
Bean は、リクエスト処理中にスローされた例外を解決するために使用されます。これらの例外リゾルバーを使用すると、ロジックをカスタマイズして例外に対処できます。詳細については、例外を参照してください。
HTTP キャッシングをサポートするために、ハンドラーは WebRequest
の checkNotModified
メソッドと、コントローラーの HTTP キャッシングで説明されているアノテーション付きコントローラーの追加オプションを使用できます。
web.xml
ファイルのサーブレット宣言にサーブレット初期化パラメーター(init-param
要素)を追加することにより、個々の DispatcherServlet
インスタンスをカスタマイズできます。次の表に、サポートされているパラメーターを示します。
パラメーター | 説明 |
---|---|
| インスタンス化され、このサーブレットによってローカルに設定される |
| コンテキストの場所を示すために、コンテキストインスタンス( |
|
|
| リクエストのハンドラーが見つからなかったときに 6.1 以降、このプロパティは デフォルトのサーブレット処理も設定されている場合、未解決のリクエストは常にデフォルトのサーブレットに転送され、404 は決して発生しないことに注意してください。 |