基于java servlet過濾器和監(jiān)聽器(詳解)
1 過濾器
1.過濾器是什么?
servlet規(guī)范當(dāng)中定義的一種特殊的組件,用于攔截容器的調(diào)用.
注:容器收到請求之后,如果有過濾器,會先調(diào)用過濾器,然后在調(diào)用servlet.
2.如何寫一個(gè)過濾器?
1.寫一個(gè)java類,實(shí)現(xiàn)Filter接口;
2.在接口方法中實(shí)現(xiàn)攔截方法;
3.配置過濾器(web.xml);
3.配置初始化參數(shù)
1.配置初始化參數(shù).(init-param)
2.通過filterconfig提供的getinitparamenter方法讀取初始化的值.
4.優(yōu)先級:
當(dāng)有多個(gè)過濾器都滿足攔截要求,則容器依據(jù)<filter-mapping>配置的先后順序執(zhí)行.
2 監(jiān)聽器
1.什么是監(jiān)聽器?
servlet規(guī)范當(dāng)中定義的一種特殊的屬性,用于監(jiān)聽容器產(chǎn)生的事件的.
注:有兩大類事件
I) 聲明周期相關(guān)的事件:
指得是,當(dāng)容器創(chuàng)建或者銷毀了request,session,servlet上下文對象時(shí),產(chǎn)生的事件.
II) 綁定數(shù)據(jù)相關(guān)的事件:
指的是,當(dāng)調(diào)用了request,session,servlet上下文的setattribute,removeAttrbute時(shí)產(chǎn)生的事件.
1.如何寫監(jiān)聽器?
1.寫一個(gè)java類實(shí)現(xiàn)監(jiān)聽器接口.
注:依據(jù)監(jiān)聽的事件類型選擇相應(yīng)的接口,例如:要監(jiān)聽session創(chuàng)建或者銷毀對應(yīng)的事件,需要實(shí)現(xiàn)httpsessionlistener接口
2.在接口方法中,實(shí)現(xiàn)監(jiān)聽處理邏輯;
3.配置監(jiān)聽器(web.xml).
2.Serlvet上下文
1.什么是servlet上下文?
容器啟動以后,會為每一個(gè)web應(yīng)用創(chuàng)建一個(gè)唯一符合servletcontext接口的對象,該對象就是servlet上下文.
2.特點(diǎn):
I) 唯一性:一個(gè)web應(yīng)用對應(yīng)一個(gè)servlet上下文.
II) 持久性:只要服務(wù)器不關(guān)閉,應(yīng)用沒有被卸載,則上下文就會一直在.
1.如何獲得servlet上下文?
GenericServlet,ServletConfig,FilterConfig,HttpSession都提供了一個(gè)方法(getServletContext)
2.上下文的作用
I) 綁定數(shù)據(jù)
setattribute,getattribute,removeattribute
注:從生存的時(shí)間長度比較:request<session<上下文
在滿足使用條件的情況下,優(yōu)先使用聲明周期短的.
II) 讀取全局的初始化參數(shù).
以上這篇基于java servlet過濾器和監(jiān)聽器(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Spring Boot最核心的27個(gè)注解,你了解多少?
這篇文章主要介紹了詳解Spring Boot最核心的27個(gè)注解,你了解多少?文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08java.sql.SQLException:com.mysql.cj.jdbc.Driver報(bào)錯(cuò)問題解決
這篇文章主要給大家介紹了關(guān)于java.sql.SQLException:com.mysql.cj.jdbc.Driver報(bào)錯(cuò)問題解決的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08Flask實(shí)現(xiàn)異步非阻塞請求功能實(shí)例解析
這篇文章主要介紹了Flask實(shí)現(xiàn)異步非阻塞請求功能實(shí)例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02SpringBoot 如何整合 ES 實(shí)現(xiàn) CRUD 操作
這篇文章主要介紹了SpringBoot 如何整合 ES 實(shí)現(xiàn) CRUD 操作,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下2020-10-10