一、filter的概念及功能

      Filter就像用滤纸来过滤杂物一样,它也叫过滤器。过滤器是Servlet2.3之后新增加的功能,它可以更变一个request请求也可以修改一个response。它可以在request到达Servlet之前预处理request,他也可以在response离开Servlet时处理response,总之,可以叫他Servlet链。一般作用在一下方面:

    1.在request到达Servlet之前:    

        1)对用户的请求统一的认证;

        2)编码的转换;

        3)对用户发过来的数据进行替换,也可以进行加密行为等。

   2.在response离开Servlet之后:

       1)修改response的头及数据等。

二、代码实现

     首先要实现 javax.servlet.Filter接口以及三个方法:

      1. init(FilterConfig filterConfig)-->初始化过滤器多用于获取初始化参数。

      2.doFilter(ServletRequest servletRequest , ServletResponse servletResponse , FilterChain  chain )-->过           滤处理的相关操作都在这里完成,需要调chain.doFilter(servletRequest ,servletResponse )方法,把请求继续向             后传递,可以是对下一个过滤器doFilter方法的调用,或者相应的web组件。所以Filter采用了职责链设计模式。

      3.destroy() 过滤器销毁  Servlet容器在销毁过滤器实例之前该方法得到调用,以释放占用的资源。

     最后编码的实现:

      对用户的请求统一的认证,获取用户名,如果用户名为空,则调到登录界面,否则放行。

@webFilter里相关属性的介绍:

属性名                      类型                                      描述

filterName                  String              指定过滤器的name属性,等价于<filter-name>

value                     String[]            该属性等价于urlPatterns属性,两者不能同时使用

urlPatterns              String[]            指定过滤器的URL匹配模式,等价于<url-pattern>

servletNames          String[]            指定过滤器将应用到哪些Servlet。取值是@WebServlet的name属性或者<servlet-name>的值

dispatcherTypes      DispatcherType  指定过滤器的转发模式,取值有:ASYNC ERROR FORWARD INCLUDE REQUEST

initParams             WebInitParam[]   指定一组过滤器初始化参数,等价于<init-Param>

asyncSupported    boolean              指定过滤器是否支持异步操作模式,等价于<async-supported>

description            String                 该过滤器的描述信息,等价于<description>

displayName           String                该过滤器的显示名,通常配合工具使用,等价于<display-name>

Filter的用法之注解的更多相关文章

  1. springboot中filter的用法

    一.在spring的应用中我们存在两种过滤的用法,一种是拦截器.另外一种当然是过滤器.我们这里介绍过滤器在springboot的用法,在springmvc中的用法基本上一样,只是配置上面有点区别. 二 ...

  2. 兼容ie8 rgba()用法 滤镜filter的用法

    原文  http://blog.csdn.net/westernranger/article/details/40836861 今天遇到了一个问题,要在一个页面中设置一个半透明的白色div.这个貌似不 ...

  3. Spring MVC中各个filter的用法

    转载:http://blog.csdn.net/qyp1314/article/details/42023725 Spring MVC中各个filter的用法 2014-12-19 09:08 105 ...

  4. python基础===map, reduce, filter的用法

    filter的用法: 这还是一个操作表list的内嵌函数'filter' 需要一个函数与一个list它用这个函数来决定哪个项应该被放入过滤结果队列中遍历list中的每一个值,输入到这个函数中如果这个函 ...

  5. JS内置对象-Array之forEach()、map()、every()、some()、filter()的用法

    简述forEach().map().every().some()和filter()的用法 在文章开头,先问大家一个问题: 在Javascript中,如何处理数组中的每一项数据? 有人可能会说,这还不简 ...

  6. logstash filter grok 用法

    在elk+filebeat都安装好,且明白了基本流程后,主要的就是写logstash的filter了,以此来解析特定格式的日志 logstash的filter是用插件实现的,grok是其中一个,用来解 ...

  7. 高阶函数 map,reduce, filter的用法

    1. map 用法 def fun_C(x): """求平方""" return x ** 2 result = map(fun_C, my ...

  8. reduce,map,filter 的用法

    # filter用法 (对每一个数据进行筛选,满足条件的就保留)# 1,filter(功能函数,容器类型数据)# 2,过滤出来是一个地址,用list,或tuple进行包装# 3,过滤出来的是原容器类型 ...

  9. js中filter过滤用法总结

    定义和用法 filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素. 注意: filter() 不会对空数组进行检测. 注意: filter() 不会改变原始数组 ...

随机推荐

  1. PAC自动代理文件格式,教你如何写PAC文件

    PAC文件格式 PAC文件是纯文本格式的,实际上就是JavaScript文件.Chrome/Chromium的扩展Switchy!的"Auto Switch Mode"功能实际上也 ...

  2. AT91-PWM应用

    步骤1: make menuconfig配置内核, 开启PWM输出功能. Device Drivers ---> Misc devices  ---> <*>Atmel AT3 ...

  3. linux eclipse epic perl padwalker

    1, 在Eclipse中安装EPIC:Help->Install New Software->Add:name:EPICLocation:http://e-p-i-c.sourceforg ...

  4. jquery实现checkbox的全选

    <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> < ...

  5. Apache 常用伪静态配置

    1. /a/b?c=d => index.php?_a=a&_m=b&c=d 2. /xxx/detail-yyy.html => index.php?_a=xxx& ...

  6. sscanf函数用法详解

    sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf( string str, string fmt, mixed var1, mixed var2 ... ...

  7. 『TCP/IP详解——卷一:协议』读书笔记——02

    2013-08-16 20:07:11 1.3 TCP/IP的分层 这是一个很好的图,要多看!!图上有些细节会在今后的笔记中提到,看不懂不必深究. IP是网络层上的主要协议,同时被TCP和UDP(这两 ...

  8. 百度ECHARTS 饼图使用心得 处理data属性

    做过CRM系统的童鞋应该都或多或少接触过hicharts或者echarts等数据统计插件.用过这两款,个人感觉echarts的画面更好看.至于功能,只有适合自己的才是最好的. 今天来说说我使用echa ...

  9. ORACLE恢复神器之ODU/AUL/DUL

    分享ORACLE数据库恢复神器之ODU.DUL和AUL工具. ODU:ORACLE DATABASE UNLOADER DUL:DATA UNLOADER AUL:也称MyDUL 关于三种工具说明: ...

  10. C#中Encoding.Unicode与Encoding.UTF8的区别

    今天在园子首页看到一篇博文-简单聊下Unicode和UTF-8,从中知道了UTF-8是Unicode的一种实现方式: Unicode只是给这世界上每个字符规定了一个统一的二进制编号,并没有规定程序该如 ...