public class ResponseCharacterEncodingFilter extends AbstractFilter
レスポンスに対するエンコードは jp.co.intra_mart.foundation.security.SessionInfo#getEncoding()
が 返す値をになります。
レスポンスの文字エンコーディングは、Content-Type 設定と共に ServletResponse.setContentType(java.lang.String)
によってセットされます。
このフィルタでは、ServletResponse をラップします。 ラップされた ServletResponse に対して #setContentType(String) を 明示的に実行した場合、自動的に Content-Type を書き換えません。 このフィルタ動作によって Content-Type が自動的にセットされるのは、 ラップされた ServletResponse の #setContentType(String) が実行されていない 状態で、ServletResponse の #getOutputStream() または #getWriter() が 呼び出された場合に限られます。
このフィルタに設定可能な初期化パラメータは以下のとおりです。
mime | このフィルタがContent-Typeを自動的にセットする時の MIME タイプ。標準は text/html です。 |
---|
コンストラクタと説明 |
---|
ResponseCharacterEncodingFilter()
新しくフィルタを作成します。
|
修飾子とタイプ | メソッドと説明 |
---|---|
void |
doFilter(javax.servlet.ServletRequest servletRequest,
javax.servlet.ServletResponse servletResponse,
javax.servlet.FilterChain filterChain)
レスポンスソースの文字エンコードをアクセスセキュリティ情報を基にして 自動解決する HttpServletResponse を作成して、 次のフィルタチェーンを実行します。
|
void |
handleInit()
このフィルタを初期化します。
|
destroy, getFilterConfig, getServletContext, handleDestroy, init, log, log
public void handleInit()
handleInit
クラス内 AbstractFilter
AbstractFilter.init(FilterConfig)
public void doFilter(javax.servlet.ServletRequest servletRequest, javax.servlet.ServletResponse servletResponse, javax.servlet.FilterChain filterChain) throws javax.servlet.ServletException, IOException
このメソッドが作る HttpServletResponse は、引数 response をラップし、 #getWriter() メソッドが実行された時に #setContentType() を一度も 呼び出されていない場合、アクセスセキュリティAPIを通して、 現在のセッションで有効な文字エンコーディングを自動解決し、 Content-Type をセットしてから、引数 response の #getWriter() メソッドを 呼び出します。
doFilter
インタフェース内 javax.servlet.Filter
doFilter
クラス内 AbstractFilter
servletRequest
- リクエストservletResponse
- レスポンスfilterChain
- フィルタIOException
- フィルタ処理実行時にIOExceptionが発生javax.servlet.ServletException
- フィルタ処理実行時にServletExceptionが発生Filter.doFilter(ServletRequest, ServletResponse, FilterChain)
Copyright © 2012 NTT DATA INTRAMART CORPORATION