Filter的用法之註解,Filter用法之註解

來源:互聯網
上載者:User

Filter的用法之註解,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>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.