setcharacterencodingfilter.java

来自「servlet初学者最好的例子……希望能对大家有所帮助」· Java 代码 · 共 71 行

JAVA
71
字号
package 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 SetCharacterEncodingFilter implements Filter { 


    protected String encoding = null; 

    protected FilterConfig filterConfig = null; 
 
    protected boolean ignore = true; 

    public void destroy() { 

        this.encoding = null; 
        this.filterConfig = null; 

    } 


    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 

        if (ignore || (request.getCharacterEncoding() == null)) { 
            String encoding = selectEncoding(request); 
            if (encoding != null) 
            request.setCharacterEncoding(encoding); 
        } 

// Pass control on to the next filter 
    chain.doFilter(request, response); 

} 

    public void init(FilterConfig filterConfig) throws ServletException { 

        this.filterConfig = filterConfig; 
        this.encoding = filterConfig.getInitParameter("encoding"); 
        String value = filterConfig.getInitParameter("ignore"); 
        if (value == null) 
            this.ignore = true; 
        else if (value.equalsIgnoreCase("true")) 
            this.ignore = true; 
        else if (value.equalsIgnoreCase("yes")) 
            this.ignore = true; 
        else 
            this.ignore = false; 
} 

// --------------- Protected Methods 

    protected String selectEncoding(ServletRequest request) { 

        return (this.encoding); 

    } 

}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?