public class HttpCharacterEncodingHandler extends java.lang.Object implements Handler<java.lang.Object,java.lang.Object>
#setDefaultEncoding(String) に指定されたエンコーディングを HttpServletRequest/HttpServletResponse に対して設定する。 明示的に設定しない場合は"UTF-8"を使用する。
Constructor and Description |
---|
HttpCharacterEncodingHandler()
デフォルトコンストラクタ。
|
Modifier and Type | Method and Description |
---|---|
java.nio.charset.Charset |
getDefaultEncoding()
デフォルトエンコーディングを取得する。
|
java.lang.Object |
handle(java.lang.Object data,
ExecutionContext context)
エンコーディングを設定する。
本ハンドラは以下の手順で処理を行う。 resolveRequestEncoding(HttpServletRequest) で解決したエンコーディングを HttpServletRequest に設定する。
resolveResponseEncoding(HttpServletRequest) で解決したエンコーディングを HttpServletResponse に設定する。
後続のハンドラに処理を委譲する。
|
protected java.nio.charset.Charset |
resolveRequestEncoding(javax.servlet.http.HttpServletRequest request)
リクエストのエンコーディングを解決する。
|
protected java.nio.charset.Charset |
resolveResponseEncoding(javax.servlet.http.HttpServletRequest request)
レスポンスのエンコーディングを解決する。
|
void |
setAppendResponseCharacterEncoding(boolean appendResponseCharacterEncoding)
レスポンスのContent-Typeに「;charset=xx」を付加するかのフラグを設定する。
|
void |
setDefaultEncoding(java.lang.String name)
デフォルトエンコーディングを設定する。
|
void |
setDefaultEncodingCharset(java.nio.charset.Charset encoding)
デフォルトエンコーディングを設定する。
|
@Published(tag="architect") public HttpCharacterEncodingHandler()
public void setDefaultEncoding(java.lang.String name)
name
- エンコーディング名public void setDefaultEncodingCharset(java.nio.charset.Charset encoding)
encoding
- エンコーディングpublic java.nio.charset.Charset getDefaultEncoding()
public void setAppendResponseCharacterEncoding(boolean appendResponseCharacterEncoding)
appendResponseCharacterEncoding
- フラグpublic java.lang.Object handle(java.lang.Object data, ExecutionContext context)
resolveRequestEncoding(HttpServletRequest)
で解決したエンコーディングを HttpServletRequest に設定する。resolveResponseEncoding(HttpServletRequest)
で解決したエンコーディングを HttpServletResponse に設定する。@Published(tag="architect") protected java.nio.charset.Charset resolveRequestEncoding(javax.servlet.http.HttpServletRequest request)
本ハンドラでは設定されているデフォルトエンコーディングを返却する。 URI 等のリクエスト情報によってエンコーディングを切り替える必要がある場合は、 本メソッドを拡張し、エンコーディングを解決する処理を実装すること。 ただし、本メソッド内ではリクエストパラメータの取得を行ってはならない。 リクエストパラメータの取得を行ってしまうと、エンコーディングの指定が行えなくなってしまうので、 文字化けの原因となる。
request
- リクエスト@Published(tag="architect") protected java.nio.charset.Charset resolveResponseEncoding(javax.servlet.http.HttpServletRequest request)
本ハンドラでは設定されているデフォルトエンコーディングを返却する。 URI 等のリクエスト情報によってエンコーディングを切り替える必要がある場合は、 本メソッドを拡張し、エンコーディングを解決する処理を実装すること。 ただし、本メソッド内ではリクエストパラメータの取得を行ってはならない。 リクエストパラメータの取得を行ってしまうと、エンコーディングの指定が行えなくなってしまうので、 文字化けの原因となる。
request
- リクエスト