Filter

来源:互联网 发布:ios数据安全 编辑:程序博客网 时间:2024/06/06 23:45


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-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)。


原创粉丝点击