同僚がエンコードの問題に遭遇すると、彼はサイト全体を解決するキャラクターエンコードフィルターを作成したいと考えています。フィルターのクラスと構成は次のとおりです。
フィルタークラス:
<span style = "font-size:12px;"> package com.chaoxing.newspaper.web.filter; import java.io.ioexception; Import java.lang.lang.reflt.invocationhandler; Import java.lang.reflect.method; Import Java.lang.Lang.Rang.Proxy; Proxy; javax.servlet.filterchain; Import javax.servlet.filterconfig; Import javax.servlet.servletexception; Import javax.servlet.servletrequest; Import javax.servlet.servletResponse; Import javax.servlet.http.httpservletrequest; Import; javax.servlet.http.httpservletresponse; public class charaterecodingfilterはフィルター{public void dofilter(servletrequest req、servletresponse res、filterchain chain)Ioexception、servletexception、servletexception {system.out.out.println( "フィルター実行")をスローします。 final httpservletrequest request =(httpservletrequest)req; httpservletResponse応答=(httpservletResponse)res; //中国の文字化けコードリクエストを断続的にreloct.setcharacterencoding( "utf-8"); Response.setcharacterencoding( "utf-8"); Response.setContentType( "text/html; charset = utf-8"); Chain.dofilter((servletrequest)proxy.newproxyinstance(this.getClass()。getClassloader()、request.getClass()。getInterfaces()、new InvocationHandler(){@OverridePublic Object Invoke(Object Proxy、Method、Object = getname = getname {; if( "getParameter")){// request.getParameterを実行します=(string)method(request、args){return null) System.println(|||| "); res);} public void init(filterconfig fconfig)throws servletexception {system.out.println( "Filter initialization");}@overridepublic void Destroy(){System.out.println( "Filter Complete");}}} </span>フィルター構成:
<span style = "font-size:12px;"> <! - サイト全体で文字化けされているフィルターを解く - > <filter> <filter-name> charatereCoding </filter-name> <filter-class> com.xxx.filter.characterencodingfilter </filter-class> </filter-mapping> <フィルターマッピング> <フィルターマッピング> <フィルターマッピング> <フィルターマッピング> <url-pattern>/*</url-pattern> </filter-mapping> </span>
ただし、フロントエンドフォームがメソッドを入力すると、メソッドが取得されると、あなたが得るものはまだ文字化けしています。
最初は、フィルターが誤って書かれているかどうか、エンコードセットが誤って記述されているかどうかについて混乱していました。しかし、テスト後、何も悪いことはありませんでした。フィルターは正常に実行されていました。
最後に、value.getByte( "ISO-8859-1"、 "utf-8")をvalue.getByte( "utf-8"、 "utf-8")に変更し、バックグラウンドで値を取得します。最後に、バイドゥは行きました
TomCat8のデフォルトエンコードセットはUTF-8であり、TomCat8のデフォルトエンコードセットはISO-8859-1であると言われています。
概要:TOMCAT7とそのバージョンの前のデフォルトのエンコードセットはISO-8859-1であり、TomCat8のデフォルト文字セットはすでにUTF-8であるため、request.getParameter()の結果をトランスコードする必要はなく、エンコードフィルタークラスをエンコードする必要はありません。
Tomcat8に基づいた無効なフィルターフィルター執筆文字を作成する問題の解決策は、エディターが共有するコンテンツ全体です。私はそれがあなたに参照を与えることができることを願っています、そしてあなたがwulin.comをもっとサポートできることを願っています。