Filter的用法之注解

1、filter的概念及功能java

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

    1.在request到达Servlet以前:    设计模式

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

        2)编码的转换;async

        3)对用户发过来的数据进行替换,也能够进行加密行为等。工具

   2.在response离开Servlet以后:编码

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

2、代码实现url

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

      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>

相关文章
相关标签/搜索