Class HttpResponseHandler

java.lang.Object
nablarch.fw.web.handler.HttpResponseHandler
All Implemented Interfaces:
Handler<HttpRequest,HttpResponse>

public class HttpResponseHandler extends Object implements Handler<HttpRequest,HttpResponse>
ServletAPIを通じてHTTPレスポンス処理を行うハンドラ。
Author:
Iwauo Tajima <iwauo@tis.co.jp>, Masato Inoue
  • Field Details

  • Constructor Details

    • HttpResponseHandler

      public HttpResponseHandler()
  • Method Details

    • setForceFlushAfterWritingHeaders

      public void setForceFlushAfterWritingHeaders(boolean usesFlush)
      HTTPヘッダーをwriteした直後にFlushするかどうかの設定 デフォルト値はtrueである。
      Parameters:
      usesFlush - Flushの有無
    • setDownloadFileNameEncoderFactory

      public HttpResponseHandler setDownloadFileNameEncoderFactory(DownloadFileNameEncoderFactory factory)
      ダウンロードファイル名のエンコーダを取得するクラスを設定する
      Parameters:
      factory - ダウンロードファイル名のエンコーダを取得するクラス
      Returns:
      このオブジェクト自体。
    • setConvertMode

      public void setConvertMode(String convertMode)
      HTTPレスポンスコードの変換モードを設定する。

      HTTPレスポンスコードの変換モードは以下のいずれかである。

      • CONVERT_ONLY_400_TO_200
      • CONVERT_ALL_TO_200
      デフォルトは、CONVERT_ONLY_400_TO_200である。

      設定した値は、HttpResponseUtil.chooseResponseStatusCode(HttpResponse, ServletExecutionContext)で使用される。
      変換の仕様については、HttpResponseUtil.chooseResponseStatusCode(HttpResponse, ServletExecutionContext)を参照。

      Parameters:
      convertMode - HTTPレスポンスコードの変換モード。
    • setCustomResponseWriter

      public void setCustomResponseWriter(CustomResponseWriter customResponseWriter)
      HTTPレスポンス出力クラスを設定する。 このプロパティを設定することで、任意のレスポンス出力処理を実行できる。 設定されていない場合はサーブレットフォワード(JSP)によるレスポンス出力が実行される。
      Parameters:
      customResponseWriter - HTTPレスポンス出力クラス
    • handle

      public HttpResponse handle(HttpRequest req, ExecutionContext ctx) throws ClassCastException
      入力データに対する処理を実行する。

      この実装では、後続ハンドラの処理結果(HttpResponse)の内容をもとに、 クライアントに対するレスポンス処理を行う。

      Specified by:
      handle in interface Handler<HttpRequest,HttpResponse>
      Parameters:
      req - 入力データ
      ctx - 実行コンテキスト
      Returns:
      処理結果データ
      Throws:
      ClassCastException - 引数 ctx の実際の型が ServletExecutionContext でない場合。
    • writeResponse

      public void writeResponse(HttpResponse res, ServletExecutionContext ctx)
      HTTPレスポンスオブジェクトの内容をもとに、 クライアントにレスポンスを返す。
      Parameters:
      res - HTTPレスポンスオブジェクト
      ctx - 実行コンテキスト
    • isErrorResponse

      protected boolean isErrorResponse(HttpResponse res)
      レスポンスがエラーか否かを判定する。

      ステータスコードが400以上であればtrue、 それ以外であればfalseを返す。

      Parameters:
      res - HTTPレスポンス
      Returns:
      判定結果
    • setContentPathRule

      public void setContentPathRule(ResourcePathRule contentPathRule)
      言語対応コンテンツパスのルールを設定する。
      Parameters:
      contentPathRule - 言語対応コンテンツパスのルール
    • setStatusCode

      protected static void setStatusCode(HttpResponse res, ServletExecutionContext ctx)
      クライアントに送信するステータスコードを設定する。
      Parameters:
      res - HTTPレスポンスオブジェクト
      ctx - 実行コンテキスト
    • writeBody

      public static void writeBody(InputStream in, jakarta.servlet.http.HttpServletResponse nativeRes) throws IOException
      メッセージボディの内容をクライアントに送信する。
      Parameters:
      in - 入力ストリームの内容
      nativeRes - サーブレットレスポンス
      Throws:
      IOException - ソケットI/Oにおけるエラー