アプリケーションサーバーや、そのバージョンによっても、日本語のリクエスト対策は異なります。
 サーバーの設定によって回避できる場合もありますが、汎用的な対策を行うには、HttpServletRequestWrapperを使って対策することです。
 (この方法でも、サーバーによっては対策が効かない場合もあります)
HttpServletRequestWrapperを使って、文字化け対策するサンプル
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | import java.io.UnsupportedEncodingException; import javax.servlet.http.HttpServletRequest; public class HttpServletRequestWrapper extends javax.servlet.http.HttpServletRequestWrapper {     public HttpServletRequestWrapper(HttpServletRequest request) {         super(request);         try {             setCharacterEncoding("UTF-8");         } catch (UnsupportedEncodingException e) {             e.printStackTrace();         }     } } | 
サンプルの解説
HttpServletRequest#setCharacterEncoding(String)で、ブラウザから送信される文字コードを指定します。
 あとは、ふつうにHttpServletRequest#getParameter(String)で値を取得すれば、日本語でも文字化けすることなく値を取得できます。
 ※HttpServletRequestは、あらかじめラッパークラス(HttpServletRequestWrapper)が用意されています。
 これを使うことで、簡単にHttpServletRequestをカスタマイズすることができます。













