Filter
filter翻译为过滤器。在web项目中,经常需要在正式处理请求前,做一些特殊的处理或常用的例程,于是就发明了这个filter。
作用:
1.过滤非法文字和信息。
2.设置统一字符编码。
3.对用户进行登录验证 。
4.改变图片文件格式。
5.对相应内容做压缩处理。
6.对XML的输出使用XSLT来进行转换。
第一步:通过在web.xml中的元素和元素来配置filter,以决定用户请求的URL应被哪些filter类来处理一次
web.xml中配置:
<配置>
<servlet>
<servlet-name>Filter</servlet-name>
<servlet-name>Filter</servlet-name>
<!--这里是路径-->
<servlet-class>com.yy.servlet.web.servlet.Filter</servlet-class>
</servlet>
<servlet-class>com.yy.servlet.web.servlet.Filter</servlet-class>
</servlet>
<filter>
<init-param>
<param-name>encode</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>param1</param-name>
<param-value>value在这里</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher> <!-- 没有配置dispatcher就是默认request方式的 -->
<dispatcher>FORWARD</dispatcher>
<dispatcher>ERROR</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<init-param>
<param-name>encode</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>param1</param-name>
<param-value>value在这里</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher> <!-- 没有配置dispatcher就是默认request方式的 -->
<dispatcher>FORWARD</dispatcher>
<dispatcher>ERROR</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
步骤二:编写filter的Servlet类。
1.我们的filter类需要实现父接口javax.servlet.Filter。
2.实现父接口的各个方法。包括init(),doFilter(),destroy(),这3个方法。
1)init()方法和destroy()方法分别用来初始化和销毁时调用。
2)init()方法在 Filter 生命周期中仅执行一次。服务器启动时就会执行。
3)destory()方法在Filter的生命周期中仅执行一次,即Web容器卸载Filter对象之前调用它。主要做释放资源的操作。
3.对doFilter(req,resp,chain)方法操作。
4.chain.doFilter(request,response)。