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-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> 步骤二:编写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)。