Tomcat过滤器

一、
Tomcat过滤器发生乱码的问题是编程格式不统一.要解决中文乱码问题,可以用过滤器进行过滤.先建一个类:
public void encodingFilter implements Filter //过滤器类 (第一步)
{
public void doFilter(request,response,chain)
{
request.setCharacterEncoding("GBK"); //设置编码格式
chain.doFilter(request,response);

}

}
(第二步)//在web.xml中配置
<filter>
<filter-name>set encoding</filter-name> //名称是自己命名的,无所谓的
<filter-class>encodingFilter</filter-class> //这个类的名称是第一步中写的过滤器的类名,如果有包的话,就用:包名.encodingFilter
</filter>
<filter-mapping>
<filter-name>set encoding</filter-name> //这个名称与上一步的名称一样
<url-pattern>/*</url.....> // /*代表 过滤所有的JSP页面
</filter-mapping>

这个写好了,中文乱码问题就解决了(注意,JSP页面中的UTF-8也应该改成GBK)

二、
TOMCAT Servlet过滤器
在Java Servlet 规范2.3中有规定。可以在Servlet调用前检查Request对象,修改Request的Header和内容,在Servlet调用后检查Response对象,修改Response的Header和内容。可检查的范围是Servle,JSP文件,HTML文件。可指定过滤器和特定的URL关联。过滤器可串联使用。所有过滤器要实现javax.servlet.Filter接口,包含三个方法:
1.init(FilterConfig) 可读取web.xml中的初试化参数,对过滤器进行初试化;
2.doFilter(ServletRequest,ServletResponse,FilterChain chain) 完成过滤器操作,FilterChain用于访问后续的过滤器。如果是过滤器串联,代码需要按Code1 -》chain.doFilter -》Code2 的顺序编写,保障过滤器的串联工作。
3.destory() 用于释放过滤器占用的资源,容器在销毁过滤器前会调用此方法。

你可能感兴趣的:(tomcat,编程,jsp,Web,servlet)