동료가 문제를 인코딩하는 것을 만나면 전체 사이트를 해결하는 캐릭터 인코딩 필터를 만들고자합니다. 필터 클래스 및 구성은 다음과 같습니다.
필터 클래스 :
<span style = "font-size;"> package com.chaoxing.newspaper.web.filter; import java.io.ioexception; import java.lang.reflect.invocationHandler; import java.lang.reflect.method; import java.lang.refroct.proxy; import javax javax.servlet.filterchain; import javax.servlet.filterconfig; import javax.servlet.servletexception; import javax.servlet.servletrequest; import javax.servlet.servletresponse; import javax.servlet.httpervletrequest; import; javax.servlet.http.httpervletresponse; public class char 최종 httpservletrequest 요청 = (httpservletrequest) req; httpservletresponse 응답 = (httpservletresponse) res; // 중국어가 달린 코드 request.SetchAracterEncoding ( "UTF-8"); 응답 .SetchAracterEncoding ( "UTF-8"); Response.setContentType ( "Text/Html; charset = utf-8"); chain.dofilter ((servletrequest) proxy.newproxyInstance (this.getClass (). getClassLoader (), request.get.getClass (). getInterfaces (), new invoctionHandler () {@reveridePublic Object invoke (Object proxy, method method, object [] throws); if (methodname.equals ( "getParameter") {// recompation.getParameter는 결과 값을 얻습니다. value+"|||||"; res);} public void init (filterconfig fconfig) servletexception {system.out.println ( "필터 초기화");}@atriadepublic void destrove () {system.out.println ( "필터 완료");}} </span>필터 구성 :
<span style = "font-size : 12px;"> <!-전체 사이트에서 손잡이가있는 필터를 해결합니다-> <filter> <filter-name> 캐릭터 encoding </filter-name> <filter-class> com.xxx.web.filter.characterencodingfilter </filter-class> <filter-mapping> <filter-name> <filter-name> <Url-pattern>/*</url-pattern> </필터 매핑> </span>
그러나 프론트 엔드 양식이 방법을 제출할 때, 당신이 얻는 것은 여전히 차단됩니다.
처음에는 필터가 잘못 작성되었는지 여부와 인코딩 세트가 잘못 작성되었는지에 대해 혼란 스러웠습니다. 그러나 테스트 후에는 아무런 문제가 없었습니다. 필터가 정상적으로 실행 중입니다.
마지막으로, value.getByte ( "ISO-8859-1", "UTF-8") to 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을 더 지원할 수 있기를 바랍니다.