Tomcat7下开发新特性尝试

      如果servlet中输出的内容是中文时,就会出现??,这些是乱码,该如何解决呢?

      以往我们使用过滤器的方式来统一解决乱码问题,在这里,我们也一样使用过滤器来解决此问题,但是在tomcat中,过滤器也可以不在web.xml中配置一样可以使用,这个配置被一个注释替代,

代码:

package web.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;
import javax.servlet.annotation.WebFilter;

@WebFilter(urlPatterns={"/*"})
public class CharactorFilter implements Filter {
	
	@Override
	public void destroy() {
	}

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1,
			FilterChain arg2) throws IOException, ServletException {
		arg0.setCharacterEncoding("GBK");
		arg1.setCharacterEncoding("GBK");
		arg2.doFilter(arg0, arg1);
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {

	}

}

这个类的功能就是实现编码的转换,解决乱码的问题,和servlet一样,在类开始处加上一个注记@WebFilter,括号里的参数是此过滤器拦截的路径,这里拦截所有的请求路径,不过和servlet一样,由于编码值的参数都写死在代码中,灵活性要降低,所以说有得也有失吧,看具体情况再决定。

猜你喜欢

转载自aina5626.iteye.com/blog/2075864