@FunctionalInterfaceSE public interface HttpRequestHandler
ServletException
EE および IOException
SE のみを宣言し、任意の HttpServlet
EE 内で使用できるようにします。このインターフェースは本質的に HttpServlet の直接の同等物であり、主要なハンドルメソッドに縮小されます。Spring スタイルで HttpRequestHandler Bean を公開する最も簡単な方法は、Spring のルート Web アプリケーションコンテキストでそれを定義し、web.xml
で HttpRequestHandlerServlet
を定義して、ターゲット Bean 名と一致する必要がある servlet-name
を介してターゲット HttpRequestHandler Bean をポイントすることです。
Spring の DispatcherServlet
内のハンドラー型としてサポートされ、ディスパッチャーの高度なマッピングおよびインターセプト機能と対話できます。これは、HttpRequestHandler を公開し、ハンドラーの実装を DispatcherServlet 環境に直接依存しないようにする推奨される方法です。
通常、バイナリレスポンスを直接生成するために実装され、個別のビューリソースは関与しません。これは、Spring の Web MVC フレームワーク内の Controller
とは異なります。ModelAndView
の戻り値がないため、DispatcherServlet 以外の呼び出し元に署名が明確になり、レンダリングするビューがないことを示します。
Spring 2.0 の時点で、HttpInvokerServiceExporter
や HessianServiceExporter
などの Spring の HTTP ベースのリモートエクスポーターは、Spring 固有の Web インフラストラクチャへの依存を最小限に抑えるために、より広範なコントローラーインターフェースではなくこのインターフェースを実装しています。
HttpRequestHandlers は、Spring の DispatcherServlet 内で実行される場合、コントローラーと同様に、オプションで LastModified
インターフェースを実装できます。ただし、HttpRequestHandlers は通常、そもそも POST リクエストのみをサポートするため、これは通常必要ありません。または、ハンドラーは、handle
メソッド内で "If-Modified-Since" HTTP ヘッダー処理を手動で実装することもできます。
HttpRequestHandlerServlet
, DispatcherServlet
, ModelAndView
, Controller
, LastModified
, HttpRequestHandlerAdapter
, HttpInvokerServiceExporter
, HessianServiceExporter
修飾子と型 | メソッドと説明 |
---|---|
void | handleRequest(HttpServletRequestEE request, HttpServletResponseEE response) 指定されたリクエストを処理し、レスポンスを生成します。 |
void handleRequest(HttpServletRequestEE request, HttpServletResponseEE response) throws ServletExceptionEE, IOExceptionSE
request
- 現在の HTTP リクエスト response
- 現在の HTTP レスポンス ServletExceptionEE
- 一般的なエラーの場合 IOExceptionSE
- I/O エラーの場合