日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java中Servlet監聽器的工作原理及示例詳解

瀏覽:215日期:2022-08-29 09:25:11

監聽器就是一個實現特定接口的普通java程序,這個程序專門用于監聽另一個java對象的方法調用或屬性改變,當被監聽對象發生上述事件后,監聽器某個方法將立即被執行。

監聽器原理

監聽原理

1、存在事件源 2、提供監聽器 3、為事件源注冊監聽器 4、操作事件源,產生事件對象,將事件對象傳遞給監聽器,并且執行監聽器相應監聽方法

監聽器典型案例:監聽window窗口的事件監聽器 例如:swing開發首先制造Frame**窗體**,窗體本身也是一個顯示空間,對窗體提供監聽器,監聽窗體方法調用或者屬性改變: * 關閉窗體時,調用windowListener 的windowclosing() , 傳遞windowEvent參數,表示窗體關閉事件對象 * 事件對象操作事件源,獲得事件源狀態

自定義監聽器

以上內容可以用下圖解釋:

java中Servlet監聽器的工作原理及示例詳解

通過person.addPersonListener(new PersonListener(){})使事件源與監聽器間產生聯系。

事件源(在事件源方法中創建事件對象):

監聽器(參數是事件對象)

事件對象(通過事件對象可以獲得事件源)

測試方法

對上的匿名類補充:匿名內部類的作用是創建一個實現接口的匿名類對象,含義是創建一個繼承自PersonListener的匿名類的對象),通過new表達式返回的引用被自動向上轉型為對PersonListener的引用

Servlet監聽器

(不需要配置,但是監聽器仍需要進行注冊) 在Servlet規范中定義了多種類型的監聽器,它們用于監聽的事件源分別為 ServletContext, HttpSession 和 ServletRequest 這三個域對象。

Servlet監聽器分為三大類 1、數據域對象創建和銷毀監聽器 2、數據域對象和屬性變更監聽器 3、綁定到 HttpSession 域中的某個對象的狀態的事件監聽器

(一)數據域對象創建銷毀監聽器 — 監聽三個與對象 (三個監聽器)

1、ServletContextListener : 用來監聽ServletContext對象的創建和銷毀

監聽創建 監聽銷毀 * ServletContext對象代表全局唯一對象,每個web工程會產生一個ServletContext,服務器啟動創建,服務器關閉銷毀

編寫監聽器 步驟一:編寫類實現特定監聽器接口 步驟二:注冊監聽器,不是通過事件源,而是在web.xml 進行配置 (監聽器和Servlet、Filter不同,不需要url配置,監聽器執行不是由用戶訪問的,監聽器 是由事件源自動調用的)

servletContext域對象何時創建和銷毀:

創建:服務器啟動針對每一個web應用創建servletcontext 銷毀:服務器關閉前先關閉代表每一個web應用的servletContext

ServletContextListener主流應用: 第一個:在服務器啟動時,對一些對象進行初始化,并且將對象保存ServletContext數據范圍內(因為在監聽器內可以獲得事件源對象) — 全局數據

例如:創建數據庫連接池

第二個:對框架進行初始化 例如:Spring框架初始化通過ServletContextListener (因為監聽器代碼在服務器啟動時執行)

Spring框架(配置文件隨服務器啟動加載) org.springframework.web.context.ContextLoaderListener

第三個:實現任務調度,啟動定時程序 (Timer、TimerTask) 使一個程序,定時執行

比如說每天晚上十二點給過生日的人進行生日祝福,中國移動對賬戶進行同步,會在服務器使用較少的時間,例如凌晨之類,啟動一段程序,進行同步

java.util.Timer 一種線程設施,用于安排以后在后臺線程中執行的任務。可安排任務執行一次,或者定期重復執行。 Timer提供了啟動定時任務方法 schedule * schedule(TimerTask task, Date firstTime, long period) 用來在指定一個時間啟動定時器,定期循環執行 * schedule(TimerTask task, long delay, long period) 用來在當前時間delay多少毫秒后啟動定時器 停止定時器,timer.cancel取消任務

2、HttpSession 數據對象創建和銷毀監聽器 —? HttpSessionListener

監聽Session對象創建 監聽Session對象銷毀

Session何時創建:request.getSession() Session何時銷毀:關閉服務器,Session過期,session.invalidate *Session過期時間通過web.xml配置(tomcat配置文件中),默認時間30分鐘

配置:

HttpSession監聽器

現有如下JSP頁面:

1.jsp

2.jsp

訪問1.jsp時會執行監聽器原因:因為如果觀察jsp的源碼,封閉式英語培訓jsp會被預處理成.java代碼(在tomcat中work文件夾下,參見http://blog.csdn.net/megustas_jjc/article/details/53462025),我們打開這個.java代碼的源碼:

java中Servlet監聽器的工作原理及示例詳解

其中的getSession的實現實際就是request.getSession()

3、HttpServletRequest對象的創建和銷毀監聽器 —- ServletRequestListener

—-監聽request對象創建 監聽request對象銷毀

Request何時創建:請求發起時創建 Request何時銷毀:響應結束時銷毀

例如:每次刷新界面都會創建銷毀一次

注意(創建銷毀次數由請求次數決定): 使用forward —- request創建銷毀幾次 —? 一次 使用sendRedirect —- request創建銷毀兩次 (兩次請求)

(二)ServletContext/HttpSession/ServletRequest中保存數據 創建、修改、移除監聽器

ServletContextAttributeListener 監聽ServletContext中屬性變化 HttpSessionAttributeListener 監聽HttpSession中屬性變化 ServletRequestAttributeListener 監聽ServletRequest中屬性變化

attributeAdded 監聽屬性添加 —- 當數據范圍對象沒有該屬性,第一次添加時調用執行 attributeRemoved 監聽屬性移除 —- 從一個數據范圍對象刪除一個已經存在屬性執行 attributeReplaced 監聽屬性替換 —? 當一個數據范圍已經存在一個屬性,向數據范圍添加相同名稱屬性觸發替換方法

例如,此處我們用HttpSessionAttributeListener舉例(ServletContextListener與ServletRequestListener同理):

JSP頁面

監聽器

注冊

注意:獲得返回值通過session.getAttribute(se.getName())

(三)被綁定Session對象,自我狀態感知監聽器

保存在 Session 域中的對象可以有多種狀態:綁定到 Session 中;從 Session 域中解除綁定;隨 Session 對象持久化到一個存儲設備中(鈍化);隨 Session 對象從一個存儲設備中恢復(活化)

被存放Session的Java對象,感知自我四種狀態變化 1、被綁定 2、被解除綁定 3、被鈍化 —? 數據從內存序列化硬盤 4、被活化 —- 數據從硬盤重新加載回內存

HttpSessionBindingListener實現接口的java對象,感知自己被綁定到Session或者從Session中解除綁定 HttpSessionActivationListener實現接口的java對象,感知從內存被鈍化硬盤上,雅思托福的區別從硬盤活化到內存中 實現這兩個接口的類不需要 web.xml 文件中進行注冊,都是由Session自主完成的,例如在存儲對象的時候會自動調用綁定

HttpSessionBindingListener

* 綁定對象方法 —- * 解除綁定方法 —?、當Session對象銷毀時,當中所有綁定對象解除綁定

JSP頁面:

HttpSessionActivationListener

* 感知對象被活化 * 感知對象被鈍化 使用場景:Session保存數據,很長一段時間沒用,但是不能銷毀Session對象,不想占用服務器內存資源 —? 鈍化(將服務器內存中數據序列化硬盤上)

JSP界面

讀取數據

注意

鈍化和活化應該由tomcat服務器 自動進行 —- 配置tomcat

配置context有幾個位置? 1、tomcat/conf/context.xml 對所有虛擬主機 所有web工程生效 2、tomcat/conf/Catalina/localhost/context.xml 對當前虛擬主機所有web工程生效 3、當前工程/META-INF/context.xml 對當前工程有效

鈍化后 it315目錄在哪里?在“tomcat/work/Catalina/localhost/項目名”目錄中

java對象如果想實現序列化,需要實現Serializable接口(因此上述Bean2實現Serializable接口,才可以被鈍化,并之后進行活化并讀取)

到此這篇關于java中Servlet監聽器的工作原理及示例詳解的文章就介紹到這了,更多相關java Servlet監聽器內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
大香伊人久久精品一区二区| 国产一区二区高清| 亚洲+小说+欧美+激情+另类| 视频在线观看一区二区三区| 亚洲一区二区三区高清| 激情婷婷欧美| 午夜欧美巨大性欧美巨大| 成人午夜亚洲| 国产麻豆一区二区三区精品视频| 日本少妇一区二区| 欧美日韩亚洲一区三区| 久久国产婷婷国产香蕉| 久久国产精品免费精品3p | 亚洲人妖在线| 欧美一区免费| 麻豆国产欧美一区二区三区| 成人高清一区| 久久精选视频| 石原莉奈在线亚洲二区| 亚洲久久视频| 亚洲人www| 久久国产乱子精品免费女| 美女视频一区在线观看| 色欧美自拍视频| 久久九九电影| 蜜臀久久99精品久久久久久9| 蜜桃久久久久久久| 欧美日韩亚洲一区| 国产aⅴ精品一区二区三区久久| 日韩理论视频| 噜噜噜躁狠狠躁狠狠精品视频| 日韩精品中文字幕一区二区| 国产欧美一区二区三区国产幕精品 | 国产精品一级| 精品久久影院| 欧美影院三区| 亚洲免费专区| 美女久久久久久| 欧美日韩尤物久久| 亚洲欧美激情诱惑| 国产欧美亚洲一区| 日韩精品永久网址| 日本欧洲一区二区| 久久99精品久久久久久园产越南| 狠狠躁少妇一区二区三区| 中文字幕成在线观看| 国产韩日影视精品| 欧美日韩18| 精精国产xxxx视频在线野外| 免费在线观看一区二区三区| 欧美日韩中文| 亚洲高清久久| 国产日产高清欧美一区二区三区 | 精品国产一区二区三区av片| 欧美日韩视频一区二区三区| 国产三级一区| 免费精品国产| 欧美日韩伊人| 亚洲高清影视| 精品亚洲免a| 婷婷精品久久久久久久久久不卡| sm久久捆绑调教精品一区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美激情日韩| 免费欧美一区| 国产精品手机在线播放| 极品裸体白嫩激情啪啪国产精品| 亚洲永久精品唐人导航网址| 久久久成人网| 亚洲精品在线二区| 精品国产亚洲一区二区三区| 成人在线视频中文字幕| 国产精品色网| 亚洲综合电影| 在线精品视频一区| 97国产精品| 免费观看日韩电影| 欧美xxxx中国| 一区二区三区午夜视频| 国产一区二区三区探花| 国产一区二区高清| 日韩av中文字幕一区二区三区| 超级白嫩亚洲国产第一| 在线精品观看| 88xx成人免费观看视频库| 日韩精品视频网站| 国产videos久久| 亚洲精品成a人ⅴ香蕉片| 四季av一区二区凹凸精品| 久久亚洲风情| 亚洲黄色中文字幕| 日产欧产美韩系列久久99| 日本欧美不卡| 欧美精品影院| 亚洲黄色影院| 91嫩草亚洲精品| 日韩精品免费视频一区二区三区 | 免费日韩一区二区三区| 激情综合网站| 国产精品手机在线播放| 欧美日韩国产一区二区三区不卡| 久久伊人久久| 午夜天堂精品久久久久| 久久天堂精品| 国产成人免费| 日本aⅴ免费视频一区二区三区| 欧美日韩国产高清电影| 精品一区二区三区中文字幕视频 | 日本免费在线视频不卡一不卡二| 成人久久一区| 国产日韩一区二区三区在线播放| 国产一区久久| 久久这里只有| 欧美另类中文字幕 | 亚洲欧美日韩专区| 岛国av免费在线观看| 欧美激情aⅴ一区二区三区| 先锋亚洲精品| 欧美午夜精品一区二区三区电影| 国产日本久久| 亚洲精品乱码| 久久av一区| 91精品电影| 九九色在线视频| 嫩草伊人久久精品少妇av杨幂| 国产精品15p| 欧美专区一区| 日日夜夜免费精品视频| 免费成人在线观看| 麻豆精品网站| 亚洲作爱视频| 欧美一级精品| 青青久久av| 亚洲日产av中文字幕| 亚洲专区欧美专区| 亚洲国内欧美| 亚洲精品一区二区在线看| 99久久夜色精品国产亚洲1000部| 成人影视亚洲图片在线| 精品三区视频| 麻豆精品视频在线| 国产精品一国产精品| 日本免费一区二区视频| 日本成人在线不卡视频| 欧美 日韩 国产一区二区在线视频 | 日韩黄色大片| 91av亚洲| 香蕉视频亚洲一级| 蜜臀久久精品| 桃色av一区二区| 天堂中文av在线资源库| 亚洲午夜天堂| 久久久久国产精品一区三寸| 久久一区视频| 日韩精品一区二区三区免费观看| 成人日韩在线| 日韩精品一区二区三区免费观看| 日韩中文首页| 国户精品久久久久久久久久久不卡| 欧美va亚洲va日韩∨a综合色| 国产91精品对白在线播放| 欧美13videosex性极品| 亚洲成人不卡| 日韩一区二区在线免费| 国产精品毛片在线| 中文字幕成人| 国产精品美女久久久久久不卡| 美女毛片一区二区三区四区最新中文字幕亚洲| 国产美女视频一区二区| 国产欧美欧美| 精品久久久亚洲| 水蜜桃精品av一区二区| 国产精品对白久久久久粗| 三上悠亚国产精品一区二区三区| 国产在线|日韩| 亚洲二区三区不卡| 香蕉久久国产| 亚洲精品三级| 国产精品1区在线| 理论片午夜视频在线观看| 久久中文字幕二区| 人人爽香蕉精品| 国产一区精品福利| 激情偷拍久久| 日韩有吗在线观看| 国产精品啊啊啊| 欧美成人a交片免费看| 91成人网在线观看| 视频一区中文字幕精品| 欧美国产专区| 久久成人国产| 国产日韩欧美一区二区三区在线观看| 麻豆高清免费国产一区| 成人啊v在线| 最新亚洲国产| 国产suv精品一区二区四区视频 | 久久青草久久| 日韩中文字幕无砖| 久久不见久久见免费视频7| 欧美a级片一区|