程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Filter的用法之注解,Filter用法之注解

Filter的用法之注解,Filter用法之注解

編輯:JAVA綜合教程

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>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved