一、Filter简介
Filter中文名为过滤器,主要功能有:过滤非法文字和信息、设置统一字符编码、对用户进行登录验证、对XML的输出使用XSTL来进行转换。
Filter与Servlet一样,也是一个Java类,自定义的Filter必须实现Filter接口,并实现该接口中的init()、doFilter()和destroy()这三个方法。前两者分别是初始化和销毁的时候调用;doFilter()接收request、response和chain三个参数,前两个参数用来传递给下一个Filter、JSP或Servlet。chain参数的类型是FilterChain,经常是chain.doFilter(request,response)调用下一个Filter。
二、Filter的配置
若希望Filter起作用,则应该在web.xml中配置,写法如下:
<filter>
<filter-name>FirstFilter</filter-name>
<filter-class>com.javaweb.ch11.FirstFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>FirstFilter</first-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
其中<url-pattern>标签用来指定该Filter拦截的URL样式,/*表示拦截该站点的所有URL。
这里再说一下FilterChain对象,在web.xml中配置的所有Filter按配置顺序组成filter链,当前Filter调用filterChain.doFilter(request,response)就相当于把请求转发给filter链上的下一个Filter。
三、常见问题和参考
常见问题:
Filter只是对请求的url起过滤作用,如果只是做一个demo,那么web.xml里面没有<Servlet>标签配置是没有问题的。
一个非法字符的过滤器:
https://www.cnblogs.com/tdcqma/p/4760065.html