ゴミコードは、J2EEで比較的一般的な問題です。 1つまたは2つの問題が発生した場合、新しい文字列(request.getParameter(xxx).getBytes( "ISO-8859-1")、 "utf-8")を使用して解決できます。多くの場合、フィルターを使用するのが最善です。
フィルターに注意を払う必要があるのは2つだけです - クラスとweb.xml
1. web.xmlへの投稿は次のとおりです。
<fileter> <! - class name-> <filter-name> setCharSetEncodingFilter </filter-name> <! - class path-> <filter-class> setCharacter </filter-crass> <init-param> <param-name> encoding </param-name> <paramvalue> utf-8 </param> </init-param> <フィルター> <フィルター> <フィルターマッピング> <filter-name> setCharSetEncodingFilter </filter-name> <! - フィルターが遭遇したときにすべてのファイルを傍受するように設定 - > <url-pattern>/*</url-pattern> </filter-mapping> </fileter>
2。フィルターカテゴリ
java.io.ioexceptionをインポートします。 javax.servlet.filterをインポートします。 javax.servlet.filterchainをインポートします。 javax.servlet.filterconfigをインポートします。 javax.servlet.servletexceptionをインポートします。 javax.servlet.servletrequestをインポートします。 javax.servlet.servletResponseをインポートします。パブリッククラスSetCharacterはフィルターを実装しています{保護された文字列エンコード= null;保護されたFilterConfig FilterConfig = null;保護されたブールの無視= true; public void init(filterconfig arg0)はservletexceptionをスローします{this.encoding = arg0.getinitparameter( "encoding"); string value = arg0.getInitParameter( "imnore"); if(value == null){this.ignore = true; } else if(value.equalsignorecase( "true")){this.ignore = true; }} public void dofilter(servletrequest arg0、servletresponse arg1、filterchain arg2)throws ioexception、servletexception {if(adia ||(arg0.getCharacterencoding()== null)){string encoding = selectencoding(arg0); if(encoding!= null)arg0.setcharacterencoding(encoding); } arg2.dofilter(arg0、arg1); } private string selectencoding(servletrequest arg0){return(this.encoding); } public void Destroy(){this.encoding = null; this.filterconfig = null; }} Web.xmlファイルでは、次の構文を使用してマッピングを定義します。
1。「/」で始まり、「/*」で終わるものは、パスマッピングに使用されます。
2。プレフィックス「*」拡張マッピングから始まります。
3.「/」を使用して、デフォルトのサーブレットマッピングを定義します。
4.残りは、詳細なマッピングを定義するために使用されます。たとえば、/aa/bb/cc.action
上記は、Java J2EEの文字化けコードの問題を解決するというアイデアです。私はあなたとそれを共有します。同様の問題を遭遇すると、同様の問題をスムーズに解決できることを願っています。