Package nablarch.fw.web
Class ResponseBody
java.lang.Object
nablarch.fw.web.ResponseBody
HTTPレスポンスのボディ内容を格納するオブジェクト。
レスポンスボディの内容を以下の3つの方式のいずれかによって指定する。 (排他利用) 1. コンテンツパスによる静的リソースの指定。内部バッファは一定サイズまではヒープ領域上に置かれるが、それを超えた 場合は一時ファイルに出力される。 入力ストリーム一時ファイルは、レスポンス処理終了後にHttpResponse.setContentPath(ResourceLocator)
2. 入力ストリームによる指定。HttpResponse.setBodyStream(InputStream)
3. 内部バッファへの書き込み。HttpResponse.write(byte[])
HttpResponse.write(CharSequence)
HttpResponseHandler
が cleanup()
を呼ぶことで
自動的に削除される。- Author:
- Iwauo Tajima <iwauo@tis.co.jp>
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
addTempFileToDelete
(File file) 削除しなければならない一時ファイルに追加する。static void
cleanup()
カレントスレッドがIO用に確保しているリソースを全て開放する。コンテンツパスを取得する。ボディの内容を格納した入力ストリームを返す。 なお、コンテントパスを使用している場合、以下のケースではnullを返却する。boolean
isEmpty()
ボディの内容が設定されていなければtrueを返す。length()
ボディの内容をヒープバッファに保持している場合、そのサイズを返す。ボディのコンテンツパスを設定する。setInputStream
(InputStream input) ボディの内容を格納した入力ストリームを設定する。toString()
この実装ではボディの内容を表す文字列を返す。write
(byte[] bytes) 内部バッファにバイナリデータを書き込む。write
(CharSequence text) 内部バッファにキャラクタデータを書き込む。write
(ByteBuffer bytes) 内部バッファにバイナリデータを書き込む。
-
Constructor Details
-
ResponseBody
コンストラクタ- Parameters:
response
- HTTPレスポンス本体
-
-
Method Details
-
isEmpty
public boolean isEmpty()ボディの内容が設定されていなければtrueを返す。- Returns:
- ボディの内容が設定されていなければtrue
-
length
ボディの内容をヒープバッファに保持している場合、そのサイズを返す。内部バッファを使用していない場合、もしくは、 内部バッファとして一時ファイルを使用している場合は null を返す。
- Returns:
- ヒープバッファのサイズ
-
setContentPath
ボディのコンテンツパスを設定する。- Parameters:
path
- コンテンツパス- Returns:
- このオブジェクト自体
-
getContentPath
コンテンツパスを取得する。- Returns:
- コンテンツパス
-
write
内部バッファにバイナリデータを書き込む。- Parameters:
bytes
- バイナリデータ- Returns:
- このオブジェクト自体
-
write
内部バッファにキャラクタデータを書き込む。- Parameters:
text
- キャラクタデータ- Returns:
- このオブジェクト自体
-
write
内部バッファにバイナリデータを書き込む。要求サイズがヒープバッファの上限値を超過した場合、 一時ファイルへの書き出しが許可されていれば、 ヒープバッファを破棄し、以降は一時ファイルをバッファとして使用する。 (ヒープバッファは直近のGCにより開放される。) 一時ファイルへの書き出しが許可されていないばあい、 レスポンスコード400に相当するHTTPエラーを送出する。
- Parameters:
bytes
- バイナリデータ- Returns:
- このオブジェクト自体
-
toString
この実装ではボディの内容を表す文字列を返す。1. コンテンツパスが指定されている場合。 パス文字列を返す。 2. 入力ストリームもしくは一時ファイル上にバッファリングしている場合。 先頭16KBの内容をデコードした文字列を返す。 3. ヒープ上にバッファリングしている場合。 バッファの内容をデコードした文字列を返す。
-
getInputStream
ボディの内容を格納した入力ストリームを返す。 なお、コンテントパスを使用している場合、以下のケースではnullを返却する。1. コンテントパスのスキームが file:// もしくは classpath:// のいずれでもない場合 2. コンテントパスのスキームが file:// もしくは classpath:// だが、その参照先のファイルが存在しない場合。
- Returns:
- 入力ストリーム
-
setInputStream
ボディの内容を格納した入力ストリームを設定する。- Parameters:
input
- 入力ストリーム- Returns:
- このオブジェクト自体
-
addTempFileToDelete
削除しなければならない一時ファイルに追加する。cleanup()
メソッドが呼ばれた際に指定された一時ファイルが削除される。- Parameters:
file
- 一時ファイル
-
cleanup
public static void cleanup()カレントスレッドがIO用に確保しているリソースを全て開放する。
-