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>

相關文章
相關標籤/搜索