读书人

变换字符编码filter乱码

发布时间: 2012-12-25 16:18:28 作者: rapoo

转换字符编码filter,乱码

package com.yuan;

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 FilterConfig filterConfig;
?protected String encodingName;
?protected boolean enable;
?
?public SetCharacterEncodingFilter(){
??this.encodingName = "gb2312";
??this.enable = false;
?}
?
?public void init(FilterConfig filterConfig) throws ServletException {
??this.filterConfig = filterConfig;
??loadConfigParams();
?}
?
?private void loadConfigParams(){
??this.encodingName = this.filterConfig.getInitParameter("encoding");
??String strIgnoreFlag = this.filterConfig.getInitParameter("enable");
??
??if(strIgnoreFlag.equals("true")){
???this.enable = true;
??}else{
???this.enable = false;
??}
?}

?public void doFilter(ServletRequest request, ServletResponse response,
???FilterChain chain) throws IOException, ServletException {
??if(this.enable){
???request.setCharacterEncoding(this.encodingName);
??}
??chain.doFilter(request, response);
?}
?
?public void destroy() {
??// TODO Auto-generated method stub
?}
?
}

?

?

web.xml配置:

<filter>
?<filter-name>SetCharacterEncodingFilter</filter-name>
?<filter-class>com.yuan.SetCharacterEncodingFilter</filter-class>
?<init-param>
??<param-name>enable</param-name>
??<param-value>true</param-value>
?</init-param>
?
?<init-param>
??<param-name>encoding</param-name>
??<param-value>gb2312</param-value>
?</init-param>
</filter>

<filter-mapping>
?<filter-name>SetCharacterEncodingFilter</filter-name>
?<url-pattern>/*</url-pattern>
</filter-mapping>

?

?

读书人网 >编程

热点推荐