1、为什么要使用Filter?
实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能.另外一点,个人认为使用Filter能够提高代码的利用率。
2、Filter如何运行的?
在Web.xml中配置了Filter之后,客户端的每一次请求以及服务器端的每一次响应都要通过Filter进行过滤。因此在做一些共有操作时可以把它放到Filter中去进行。
3、web.xml如何配置?
<!-- 定义Filter -->
<filter>
<!-- Filter的名字 -->
<filter-name>authority</filter-name>
<!-- Filter实现类 -->
<filter-class>com.yulong.eis.filter.AuthorityFilter</filter-class>
<!-- 下面三个init-param元素配置了三个参数 -->
<!-- 定义Filter重定向的URL地址 -->
<init-param>
<param-name>redirectUrl</param-name>
<param-value>welcome.jsp</param-value>
</init-param>
<init-param>
<param-name>sessionKey</param-name>
<param-value>currentUser</param-value>
</init-param>
<init-param>
<!-- 定义Filter放掉的URL地址 -->
<param-name>exceptUrl</param-name>
<param-value>/welcome.jsp /login.jsp /register.jsp /images/tittle.jpg /LoginServlet /tittle.jsp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>authority</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在搜索Filter的相关资料时,可以搜索Filter和servlet的关系 、java Filter 登录控制。
filter 的生命周期与web容器相同,在web容器启动时也就相应的初始化了Filter对象,在容器关闭的时候,调用Filter对象的destory方法对其进行销毁。