Java web學習filter (1)

來源:互聯網
上載者:User

標籤:壓縮   photo   aop   提取   開發人員   href   span   容器   XML   

一.概念:
Filter也稱之為過濾器,它是Servlet技術中比較激動人心的技術,WEB開發人員通過Filter技術,對web伺服器管理的所有web資源: 例如Jsp, Servlet, 靜態圖片檔案或靜態 html 檔案等進行攔截,從而實現一些特殊的功能。例如實現URL層級的許可權存取控制、過濾禁用語、壓縮響應資訊等一些進階功能。
二、Filter簡介
Servlet API中提供了一個Filter介面,開發web應用時,如果編寫的Java類實現了這個介面,則把這個java類稱之為過濾器Filter。通過 Filter技術,開發人員可以實現使用者在訪問某個目標資源之前,對訪問的請求和響應進行攔截。簡單說,就是可以實現web容器對某資源的訪問前截獲進行 相關的處理,還可以在某資源向web容器返迴響應前進行截獲進行處理。
三.程式碼範例
 <1>基礎示範
package cn.edu.hpu.lesson;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

//1、建立一個類,實現Filter介面

public class Filterlesson1 implements Filter {
    public void destroy() {
  
    }
    //2、實現doFilter()方法,列印一句話,來證明能夠進行攔截
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        System.out.println("before call first filter.");
       chain.doFilter(request,response);
       System.out.println("after call first filter.");
    }
    public void init(FilterConfig arg0) throws ServletException {
    }
}
下面在web.xml中操作加入
3、在web.xml中進行配置(參照Servlet配置)


   


   
4.最後開啟網頁測試得到下面結果



總結:

對於 filter 的 應用相信大家已經明白了,它主要的作用就是使用者在訪問某個目標資源之前,對訪問的請求和響應進行攔截,做一些處理,然後再調用目標程式,這樣做的好處是可 以對一些公用的操作進行抽象,就拿設定字元集來說,如果不使用這種方式,我們每個頁面都要寫設定字元集的語句。不但麻煩而且維護困難,但是如果使用filter 的話,只需要添加一個類,在 xml 中配置一下,如果不想使用了,將設定檔中的內容去除即可。

其實這就是一種 AOP (Aspect OrientedProgramming),面向切面編程。它的主要的意圖是:將日誌記錄,效能統計,安全控制,交易處理,異常處理等代碼從商務邏輯代碼 中劃分出來,通過對這些行為的分離,我們希望可以將它們獨立到非指導商務邏輯的方法中,進而改變這些行為的時候不影響商務邏輯的代碼。

對於設定字元集來說,它並非是商務邏輯的內容,對於這些內容的處理我們就可以提取出來,使用 filter 進行整體設定,這種方式相當於對類中的內容做進一步的抽象,使我們的系統更加靈活,更加能應對變化!

Java web學習filter (1)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.