2011-07-05 19 views
0

ファイル処理(サードパーティのアプリケーションを から受信し、さらに使用するためにデータベースに保存する)を扱うWebアプリケーションを見てきました。ServletRequestとServletResponseを使用して文字エンコーディングを設定する

この特定のWebアプリケーションには、文字エンコーディングをUTF-8に設定することのみを基本目的とするサーブレットフィルタが設定されています。例えば

public class ResponseFilterExample implements Filter { 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterchain) throws IOException, ServletException { 
     filterchain.doFilter(request, response); 
     response.setContentType("text/html"); 
     response.setCharacterEncoding("UTF-8"); 
    } 
} 

今私の質問は、

request.setCharacterEncoding("UTF-8"); 

response.setCharacterEncoding("UTF-8"); 

の違いは何ですか?

+1

最初のものは、(ブラウザからサーバーに送信される)リクエストの文字エンコーディングを設定し、2番目のものはレスポンスの文字エンコーディングを設定します(サーバーからブラウザへ)。これら2つの方法(http://download.oracle.com/javaee/6/api/)のjavadocを読んだことがありますか? –

答えて

0

違いは、1つはsets the encoding on the request、もう1つはsets the encoding on the responseです。

上記のdocリンクは、より詳細に説明しています。

ServletRequest.setCharacterEncoding()

は、この要求の本体で使用される文字エンコーディングの名前をオーバーライドします。このメソッドは、要求パラメータを読み取るか、getReader()を使用して入力を読み取る前に呼び出す必要があります。それ以外の場合、効果はありません。

ServletResponse.setCharacterEncoding()

は、クライアントに、例えば、UTF-8に送信される応答の文字エンコーディング(MIME文字セット)を設定します。

関連する問題