JavaWeb的三大元件 Servlet、Listener、Filter
1.Servlet
Servlet 是一個 Java程式,是在伺服器上執行以處理客戶端請求並做出響應的程式
Servlet的生命週期
是一個servlet的從初始化(出生)到銷燬(死亡)。
Init() -> service() -> destroy().
載入型別:載入class檔案
例項化型別:Servlet 容器建立 Servlet 的例項
初始化:該容器呼叫 init() 方法
請求處理:如果請求 Servlet,則容器呼叫 service() 方法
服務終止:銷燬例項之前呼叫 destroy() 方法
Servlet的繼承層次
ServletConfig
ServletConfig物件: 主要是用於載入servlet的初始化引數。在一個web應用可以存在多個ServletConfig物件(一個Servlet對應一個ServletConfig物件)
建立時機: 在建立完servlet物件之後,在呼叫init方法之前建立。
得到物件: 直接從有引數的init方法中得到!!!
ServletContext
ServletContext物件 ,叫做Servlet的上下文物件。表示一個當前的web應用環境。
一個web應用中只有一個ServletContext物件。
ServletContext就是一個域物件!
儲存資料:void setAttribute(java.lang.String name, java.lang.Object object)
獲取資料: java.lang.Object getAttribute(java.lang.String name)
刪除資料: void removeAttribute(java.lang.String name)
ServletContext域物件:作用範圍在整個web應用中有效!
所有域物件:
HttpServletRequet 域物件
ServletContext域物件
HttpSession 域物件
PageContext域物件
2.過濾器
,它與Servlet很相似!不它過濾器是用來攔截請求的,而不是處理請求的。
當用戶請求某個Servlet時,會先執行部署在這個請求上的Filter,如果Filter“放行”,那麼會繼承執行使用者請求的Servlet;如果Filter不“放行”,那麼就不會執行使用者請求的Servlet。
其實可以這樣理解,當用戶請求某個Servlet時,Tomcat會去執行註冊在這個請求上的Filter,然後是否“放行”由Filter來決定。可以理解為,Filter來決定是否呼叫Servlet!當執行完成Servlet的程式碼後,還會執行Filter後面的程式碼。
-
-
- Filter作用:
-
1:可以攔截請求(request)
2:也可以攔截響應(response)
3:放行,同意通過聯結器
4:統計
3.Listener
1:監聽器就是 j2EE中的一個類(介面)
2:監聽什麼物件,主要是監聽 三大域物件request,session,application (ServletRequest,HttpSession,ServletContext)
3:監聽什麼內容:
A: 監聽域物件的建立與銷燬 也就是生命週期監聽
B: 監聽域物件的屬性新增,更新,移除動作
C:監聽 被加入域物件中的物件
ServletRequest物件:
生命週期監聽:ServletRequestListener
屬性監聽:ServletRequestAttributeListener
HttSession物件:
生命週期監聽:HttpSessionListener
屬性監聽:HttpSessionAttributeListener
物件繫結監聽1:HttpSessionBindingListener
物件鈍化活化監聽2:HttpSessionActivationListener
ServletContext物件:
生命週期監聽:ServletContextListener
屬性監聽:ServletContextAttributeListener