在jsp页面传接收中文字符时,常常会出现乱码问题,解决起来很简单,只要加一个中文过滤器的类就可以,值得注意的是,此类是实现Filter类,所有起类名时要与其有区别才 可以(例如:EncodingFilter),简单代码如下:
[color=red]import[/color] java.io.IOException;
[color=red]import[/color] javax.servlet.Filter;
[color=red]import[/color] javax.servlet.FilterChain;
[color=red]import[/color] javax.servlet.FilterConfig;
[color=red]import[/color] javax.servlet.ServletException;
[color=red]import[/color] javax.servlet.ServletRequest;
[color=red]import[/color] javax.servlet.ServletResponse;
[color=blue]/**
* 编码过滤器, 默认UTF-8
*
* @author linde13652
*
*/[/color]
[color=red]public class[/color] EncodingFilter [color=red]implements[/color] Filter {
[color=red]private[/color] String [color=blue]encoding[/color] = [color=blue]"UTF-8";[/color]
[color=red]public void [/color]destroy() {
}
[color=red]public void [/color]doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) [color=red]throws[/color] IOException, ServletException {
request.setCharacterEncoding([color=red]this[/color].[color=blue]encoding[/color]);
chain.doFilter(request, response);
}
[color=red]public void [/color]init(FilterConfig config) throws ServletException {
String encoding = config.getInitParameter("[color=blue]encoding[/color]");
[color=red]if[/color] (encoding != [color=red]null[/color] && encoding.trim().length() > 0) {
[color=red]this[/color].[color=blue]encoding[/color] = encoding;
}
}
}
[color=red]import[/color] java.io.IOException;
[color=red]import[/color] javax.servlet.Filter;
[color=red]import[/color] javax.servlet.FilterChain;
[color=red]import[/color] javax.servlet.FilterConfig;
[color=red]import[/color] javax.servlet.ServletException;
[color=red]import[/color] javax.servlet.ServletRequest;
[color=red]import[/color] javax.servlet.ServletResponse;
[color=blue]/**
* 编码过滤器, 默认UTF-8
*
* @author linde13652
*
*/[/color]
[color=red]public class[/color] EncodingFilter [color=red]implements[/color] Filter {
[color=red]private[/color] String [color=blue]encoding[/color] = [color=blue]"UTF-8";[/color]
[color=red]public void [/color]destroy() {
}
[color=red]public void [/color]doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) [color=red]throws[/color] IOException, ServletException {
request.setCharacterEncoding([color=red]this[/color].[color=blue]encoding[/color]);
chain.doFilter(request, response);
}
[color=red]public void [/color]init(FilterConfig config) throws ServletException {
String encoding = config.getInitParameter("[color=blue]encoding[/color]");
[color=red]if[/color] (encoding != [color=red]null[/color] && encoding.trim().length() > 0) {
[color=red]this[/color].[color=blue]encoding[/color] = encoding;
}
}
}