一、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. 如何在 IIS 中设置 HTTPS 服务

    Windows Server2008.IIS7启用CA认证及证书制作完整过程 这篇文章介绍了如何安装证书申请工具: 如何在iis创建证书申请: 如何使用iis申请证书生成的txt文件,在工具中开始申请 ...

  2. Android之Fragment学习总结(1)

    对于Fragment的学习: 近日初步学习了Fragment这以特殊的组件,其依托与一个Activity,与Activity的生命周期息息相关,为其设置的视图只有当其关联到一个Activity才会起效 ...

  3. Web大文件上传控件-asp.net-bug修复-Xproer.HttpUploader6.2

    版权所有 2009-2016荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...

  4. 【收藏】android WebView总结

    来自:http://blog.csdn.net/chenshijun0101/article/details/7045394 浏览器控件是每个开发环境都具备的,这为马甲神功提供了用武之地,window ...

  5. Majority Element I&II

    题号:169, 229. 思路:当要找到超过n/c的元素x时,在更新candidates时,要保证,是x时加1,不是x时消掉c-1.则最终,x一定会出现在一个candidate中.

  6. testng.xml顺序执行多个case配置

    testng.xml顺序执行多个case配置 项目结构如图:

  7. Coins(HDU 2844):一个会超时的多重背包

    Coins  HDU 2844 不能用最基础的多重背包模板:会超时的!!! 之后看了二进制优化了的多重背包. 就是把多重转变成01背包: 具体思路见:http://www.cnblogs.com/tt ...

  8. Common scenarios to avoid in OLTP

    Database Design Rule Description Value Source Problem Description 1 High Frequency queries having a ...

  9. Request Tracker 4.0.13 发布

    Request Tracker 4.0.13 修复了几个重要的安全问题. Request Tracker,企业级的问题跟踪系统

  10. MVC路由探寻,涉及路由的惯例、自定义片段变量、约束、生成链接和URL等

    引子 在了解MVC路由之前,必须了解的概念是"片段".片段是指除主机名和查询字符串以外的.以"/"分隔的各个部分.比如,在http://site.com/Hom ...