Heim  >  Artikel  >  Java  >  Lösung für den verstümmelten Java-Filter

Lösung für den verstümmelten Java-Filter

藏色散人
藏色散人Original
2020-04-07 09:40:311989Durchsuche

Lösung für den verstümmelten Java-Filter

Wie man mit Filter in Java mit verstümmelten chinesischen Zeichen umgeht

Hinweis: Beim Erlernen der Verwendung von Selvert-Filtern. Wann Der Filter verarbeitet verstümmelte chinesische Zeichen. Bei der Initialisierung der Filterkonfiguration wird utf-8 zur Verarbeitung verstümmelter chinesischer Zeichen verwendet. Auf der übermittelten JSP-Seite wird jedoch gbk verwendet. Obwohl beide chinesische verstümmelte Zeichen erzeugen können, führen sie zu inkonsistenten Formaten für die Verarbeitung verstümmelter Zeichen. Der Kompilierungsfehler ist also aufgetreten.

Empfohlenes Tutorial: „Java lernen

Lösung: UTF-8 oder GBK überall verwenden

//过滤器类
CharactorFilter.jsp
package cn.com.Filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class CharactorFilter implements Filter { //继承Filter类
    //字符编码
    String encoding=null;
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        if(encoding!=null){
        //设置request字符编码
            request.setCharacterEncoding(encoding);
         //设置response字符编码
            response.setContentType("text/html;charset="+encoding);
        }
     //传递给下一个过滤器
        chain.doFilter(request, response);
    }
    public void init(FilterConfig filterConfig) throws ServletException {
      //获取初始化参数
        encoding=filterConfig.getInitParameter("encoding");
    }
    public void destroy() {
        // TODO Auto-generated method stub
        encoding=null;
    }
}

web.xml

<filter>      <!--注意这里是filter,不要配置成servlet-->
    <filter-name>CharactorFilter</filter-name>    <!--过滤器名称-->
   <filter-class>cn.com.Filter.CharactorFilter</filter-class>  <!--过滤器的完整类名-->  
     <init-param>   <!--初始化参数-->  
         <param-name>encoding</param-name>  <!--参数名称-->  
         <param-value>utf-8</param-value>   <!--参数值-->  
     </init-param>
  </filter>
  <filter-mapping> <!--过滤器映射--> 
      <filter-name>CharactorFilter</filter-name><!--过滤器名称-->   
      <url-pattern>/*</url-pattern><!--URL映射,给所有页面处理乱码-->  
      </filter-mapping>

Das obige ist der detaillierte Inhalt vonLösung für den verstümmelten Java-Filter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn