Struts使用filter解决中文乱码问题

一.在web.xml中配置

xml 代码
<filter>   
        <filter-name>EncodingFilter</filter-name>   
        <filter-class>com.kenshin.base.SysFilter</filter-class>   
        <init-param>   
            <param-name>encoding</param-name>   
            <param-value>UTF-8</param-value>   
        </init-param>   
        <init-param>   
            <param-name>enable</param-name>   
            <param-value>true</param-value>   
        </init-param>   
</filter>   
<filter-mapping>   
        <filter-name>EncodingFilter</filter-name>   
        <url-pattern>*.do</url-pattern>   
</filter-mapping>
  

二.filter类代码

java 代码
package com.kenshin.base;      
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;    
import org.apache.commons.logging.Log;    
import org.apache.commons.logging.LogFactory;    
import org.hibernate.Session;    
import org.hibernate.SessionFactory;    
import org.hibernate.Transaction;    
   
public class SysFilter implements Filter {    
    protected String sEncodingName;      
    protected FilterConfig sysFilter;       
    protected boolean bEnable;       
    protected Log logger = LogFactory.getLog(SysFilter.class);    
   
    public void destroy() {       
    }    
   
    public void doFilter(ServletRequest request, ServletResponse response,    
            FilterChain filterChain) throws IOException, ServletException {    
        // TODO Auto-generated method stub    
        if (this.bEnable) {    
            try {      
                request.setCharacterEncoding(this.sEncodingName);    
                response.setContentType("text/html;charset=" + this.sEncodingName);    
                response.setCharacterEncoding(this.sEncodingName);    
                filterChain.doFilter(request, response);    
   
            } catch (Exception e) {    
                logger.info("出错了");    
            }    
            // session.close();    
        } else {    
            filterChain.doFilter(request, response);    
        }    
    }    
   
    public void init(FilterConfig filterConfig) throws ServletException {    
        // TODO Auto-generated method stub    
        this.sysFilter = filterConfig;    
        this.loadFilterSetting();    
    }    
   
    private void loadFilterSetting() {    
        this.sEncodingName = this.sysFilter.getInitParameter("encoding");    
        logger.info("encoding:" + sEncodingName);    
        String sEnable = this.sysFilter.getInitParameter("enable");    
        if (sEnable != null && sEnable.equalsIgnoreCase("true")) {    
            this.bEnable = true;    
        } else {    
            this.bEnable = false;    
        }    
    }      
} 


注:本文转载http://kenshinlk.iteye.com/blog/59101

你可能感兴趣的:(java,apache,Hibernate,struts,servlet)