關於listener filter servlet 攔截器

1、基本 

web.xml 的加載順序是:context- param -> listener -> filter -> servlet html

過濾器和servlet執行關係:java

 

  2、生命週期:

        一、servlet:servlet的生命週期始於它被裝入web服務器的內存時,並在web服務器終止或從新裝入servlet時結束。servlet一旦被裝入web服務器,通常不會從web服務器內存中刪除,直至web服務器關閉或從新結束。
          (1)、裝入:啓動服務器時加載Servlet的實例; 
        (2)、初始化:web服務器啓動時或web服務器接收到請求時,或者二者之間的某個時刻啓動。初始化工做有init()方法負責執行完成; 
        (3)、調用:從第一次到之後的屢次訪問,都是隻調用doGet()或doPost()方法; 
        (4)、銷燬:中止服務器時調用destroy()方法,銷燬實例。 web

        

           二、filter:(必定要實現javax.servlet包的Filter接口的三個方法init()、doFilter()、destroy(),空實現也行) 
         (1)、啓動服務器時加載過濾器的實例,並調用init()方法來初始化實例; 
         (2)、每一次請求時都只調用方法doFilter()進行處理; 
         (3)、中止服務器時調用destroy()方法,銷燬實例。數據庫

         三、listener:相似於servlet和filter服務器

           web.xml 的加載順序是:context- param -> listener -> filter -> servlet spa

       四、interceptor:以struts的攔截器爲例,加載了struts.xml之後,初始化相應攔截器。當action請求來時調用intercept方法,服務器中止銷燬interceptor。xml

 3、職責

       一、servlet:htm

        建立並返回一個包含基於客戶請求性質的動態內容的完整的html頁面;
        建立可嵌入到現有的html頁面中的一部分html頁面(html片斷);
        讀取客戶端發來的隱藏數據;
        讀取客戶端發來的顯示數據;
        與其餘服務器資源(包括數據庫和java的應用程序)進行通訊;
        經過狀態代碼和響應頭向客戶端發送隱藏數據。接口

       二、filter:生命週期

        filter可以在一個請求到達servlet以前預處理用戶請求,也能夠在離開servlet時處理http響應:
        在執行servlet以前,首先執行filter程序,併爲之作一些預處理工做;
        根據程序須要修改請求和響應;
        在servlet被調用以後截獲servlet的執行

         三、listener:職責如概念。

          servlet2.4規範中提供了8個listener接口,能夠將其分爲三類,分別以下:
         第一類:與servletContext有關的listner接口。包括:ServletContextListener、ServletContextAttributeListener
         第二類:與HttpSession有關的Listner接口。包括:HttpSessionListner、 HttpSessionAttributeListener、HttpSessionBindingListener、                      HttpSessionActivationListener;
         第三類:與ServletRequest有關的Listener接口,包括:ServletRequestListner、ServletRequestAttributeListener

        四、interceptor:與過濾器十分類似,經過層層攔截,處理用戶的請求和響應。

 

        備註:web.xml 的加載順序是:context-param -> listener -> filter -> servlet 。瞭解了這幾個概念的區別之後,不難理論這個加載順序了。

相關文章
相關標籤/搜索