Filter的用法之注解

一、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>

时间: 2024-08-06 02:31:43

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

springboot中filter的用法

一.在spring的应用中我们存在两种过滤的用法,一种是拦截器.另外一种当然是过滤器.我们这里介绍过滤器在springboot的用法,在springmvc中的用法基本上一样,只是配置上面有点区别. 二.filter功能,它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开 servlet时处理response.换种说法,filter

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

原文  http://blog.csdn.net/westernranger/article/details/40836861 今天遇到了一个问题,要在一个页面中设置一个半透明的白色div.这个貌似不是难题,只需要给这个div设置如下的属性即可: background: rgba(255,255,255,.1); 但是要兼容到ie8.这个就有点蛋疼了.因为ie8不支持rgba()函数.下面我们总结一下rgba()函数的含义. rgba的含义,r代表red,g代表green,b代表blue,红绿蓝

python分割字符串split,filter函数用法

现有字符串,需要取出用空格分隔的第一段,操作如下 >>> product_model = ‘WS-C2960G-24TC-L – Fixed Module 0′>>> product_model.split(‘ ‘)[0]‘WS-C2960G-24TC-L’ 不带参数的split(),会把所有空格(空格符.制表符.换行符)当作分隔符,如果有这些“空格”,则可这样写 >>> product_model = ‘WS-C2960G-24TC-L – Fixe

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

1. map 用法 1 def fun_C(x): 2 """求平方""" 3 return x ** 2 4 5 6 result = map(fun_C, my_list) 7 print(list(result)) 8 9 my_list1 = ["smith", "edward", "john", "obama", "tom"] 10 11

reduce,map,filter 的用法

# filter用法 (对每一个数据进行筛选,满足条件的就保留)# 1,filter(功能函数,容器类型数据)# 2,过滤出来是一个地址,用list,或tuple进行包装# 3,过滤出来的是原容器类型数据的子集 # reduce用法 (对所有数据进行处理的一个结果)# 1,reduce(功能函数,容器类型数据) 注意:功能函数一般是两个参数# 2,所有数据进行结合的一个结果 # map用法 (对每一个数据进行处理,处理后数据长度与原容器长度一样)# 1,map(功能函数,容器类型数据)# 2,得

java中filter的用法

filter过滤器主要使用于前台向后台传递数据是的过滤操作.程度很简单就不说明了,直接给几个已经写好的代码: 一.使浏览器不缓存页面的过滤器 Java代码 import javax.servlet.*;import javax.servlet.http.HttpServletResponse;import java.io.IOException; /** * 用于的使 Browser 不缓存页面的过滤器 */public class ForceNoCacheFilter implements F

jquery中filter的用法

一.filter的参数类型可分为两种 1.传递选择器 $('a').filter('.external') 2.传递过滤函数 $('a').filter(function(index) {        return $(this).hasClass('external');    }) 二.Jquery中find与filter区别 1.find()会在div元素内 寻找 class为classname的元素.2.filter()则是筛选div的class为classname的元素.3.基本是f

filter的用法filter过滤器

1.过滤器的概念 Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应. 主要用于对HttpServletRequest 进行预处理,也可以对HttpServletResponse 进行后处理,是个典型的处理链. 优点:过滤链的好处是,执行过程中任何时候都可以打断,只要不执行chain.doFilter()就不会再执行后面的过滤器和请求的内容.而在实际使用时,就要特别注意过滤链的执行顺序问题 2.过滤器的作用描述 在HttpServletRequ

javascript中filter的用法

filter filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素. 和map()类似,Array的filter()也接收一个函数.和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素. 例如,在一个Array中,删掉偶数,只保留奇数,可以这么写: 1 var arr = [1, 2, 4, 5, 6, 9, 10, 15]; 2 var r = arr.filter(function