国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
關(guān)于JSP.Servlet啟動次序的說明
寫了個測試,為了明確三種之間的生命周期和啟動時候的優(yōu)先順序,測試的結(jié)果如下:
啟動順序: 先listener   后   serverlet
就是說在web.xml里面配置的listener要優(yōu)于servlet的啟動,這一點可以解釋,在spring的單鍵類里面調(diào)用proxoold的數(shù)據(jù)連接池會失敗的情況(以前我開發(fā)一個功能和同事寫一個功能遇到過這個問題),因為proxool是使用servlet啟動的。
servlet之間啟動的優(yōu)先順序取決于 < load-on-startup> 1< /load-on-startup>    配置的數(shù)值,該值小的先啟動,大的后啟動,但是該值不能配置為負數(shù),否則不自動啟動。
filter不屬于自啟動方面的。我主要測試filter在每次處理請求和過濾的時候是否使用了共享實例,試驗證明,服務(wù)器每次啟動,每個filter會被初始化一次,然后以后所有的過濾請求全部被同一個實例處理,這也是官方一再強調(diào),filter編寫必須無狀態(tài)的原因(不能包含類級別的字段變量,否則狀態(tài)無法保證,要么就只能用final級別的,當(dāng)然如果狀態(tài)不是你關(guān)心的也就無所謂了)。
其他監(jiān)聽器介紹如下(從網(wǎng)上摘抄過來的)
概述:
Servlet監(jiān)聽器用于監(jiān)聽一些重要事件的發(fā)生,監(jiān)聽器對象可以在事情發(fā)生前、發(fā)生后可以做一些必要的處理。
接口:
目前Servlet2.4和JSP2.0總共有8個監(jiān)聽器接口和6個Event類,其中HttpSessionAttributeListener與
HttpSessionBindingListener皆使用HttpSessionBindingEvent;HttpSessionListener和HttpSessionActivationListener則都使用HttpSessionEvent;其余Listener對應(yīng)的Event如下所示:
Listener接口
Event類
ServletContextListener
ServletContextEvent
ServletContextAttributeListener
ServletContextAttributeEvent
HttpSessionListener
HttpSessionEvent
HttpSessionActivationListener
HttpSessionAttributeListener
HttpSessionBindingEvent
HttpSessionBindingListener
ServletRequestListener
ServletRequestEvent
ServletRequestAttributeListener
ServletRequestAttributeEvent
分別介紹:
一 ServletContext相關(guān)監(jiān)聽接口
補充知識:
通過ServletContext 的實例可以存取應(yīng)用程序的全局對象以及初始化階段的變量。
在JSP文件中,application 是 ServletContext 的實例,由JSP容器默認(rèn)創(chuàng)建。Servlet 中調(diào)用 getServletContext()方法得到 ServletContext 的實例。
注意:
全局對象即Application范圍對象,初始化階段的變量指在web.xml中,經(jīng)由< context-param> 元素所設(shè)定的變量,它的范圍也是Application范圍,例如:
<< context-param>
<< param-name> Name< /param-name>
<< param-value> browser< /param-value>
<< /context-param>
當(dāng)容器啟動時,會建立一個Application范圍的對象,若要在JSP網(wǎng)頁中取得此變量時:
String name = (String)application.getInitParameter("Name");
或者使用EL時:
${initPara.name}
若是在Servlet中,取得Name的值方法:
String name = (String)ServletContext.getInitParameter("Name");
1.ServletContextListener:
用于監(jiān)聽WEB 應(yīng)用啟動和銷毀的事件,監(jiān)聽器類需要實現(xiàn)javax.servlet.ServletContextListener 接口。
ServletContextListener 是 ServletContext 的監(jiān)聽者,如果 ServletContext 發(fā)生變化,如服務(wù)器啟動時 ServletContext 被創(chuàng)建,服務(wù)器關(guān)閉時 ServletContext 將要被銷毀。
ServletContextListener接口的方法:
void contextInitialized(ServletContextEvent sce)
通知正在接受的對象,應(yīng)用程序已經(jīng)被加載及初始化。
void contextDestroyed(ServletContextEvent sce)
通知正在接受的對象,應(yīng)用程序已經(jīng)被載出。
ServletContextEvent中的方法:
ServletContext getServletContext()
取得ServletContext對象
2.ServletContextAttributeListener:用于監(jiān)聽WEB應(yīng)用屬性改變的事件,包括:增加屬性、刪除屬性、修改屬性,監(jiān)聽器類需要實現(xiàn)javax.servlet.ServletContextAttributeListener接口。
ServletContextAttributeListener接口方法:
void attributeAdded(ServletContextAttributeEvent scab)
若有對象加入Application的范圍,通知正在收聽的對象
void attributeRemoved(ServletContextAttributeEvent scab)
若有對象從Application的范圍移除,通知正在收聽的對象
void attributeReplaced(ServletContextAttributeEvent scab)
若在Application的范圍中,有對象取代另一個對象時,通知正在收聽的對象
ServletContextAttributeEvent中的方法:
java.lang.String getName()
回傳屬性的名稱
java.lang.Object getValue()
回傳屬性的值
二、HttpSession相關(guān)監(jiān)聽接口
1.HttpSessionBindingListener接口
注意:HttpSessionBindingListener接口是唯一不需要再web.xml中設(shè)定的Listener
當(dāng)我們的類實現(xiàn)了HttpSessionBindingListener接口后,只要對象加入Session范圍(即調(diào)用HttpSession對象的setAttribute方法的時候)或從Session范圍中移出(即調(diào)用HttpSession對象的removeAttribute方法的時候或Session Time out的時候)時,容器分別會自動調(diào)用下列兩個方法:
void valueBound(HttpSessionBindingEvent event)
void valueUnbound(HttpSessionBindingEvent event)
思考:如何實現(xiàn)記錄網(wǎng)站的客戶登錄日志, 統(tǒng)計在線人數(shù)?
2.HttpSessionAttributeListener接口
HttpSessionAttributeListener監(jiān)聽HttpSession中的屬性的操作。
當(dāng)在Session增加一個屬性時,激發(fā)attributeAdded(HttpSessionBindingEvent se)方法;當(dāng)在Session刪除一個屬性時,激發(fā)attributeRemoved(HttpSessionBindingEventse)方法;當(dāng)在Session屬性被重新設(shè)置時,激發(fā)attributeReplaced(HttpSessionBindingEvent se)方法。這和ServletContextAttributeListener比較類似。
3.HttpSessionListener接口
HttpSessionListener監(jiān)聽HttpSession的操作。當(dāng)創(chuàng)建一個Session時,激發(fā)sessionCreated(HttpSessionEvent se)方法;當(dāng)銷毀一個Session時,激發(fā)sessionDestroyed(HttpSessionEvent se)方法。
4.HttpSessionActivationListener接口
主要用于同一個Session轉(zhuǎn)移至不同的JVM的情形。
四、ServletRequest監(jiān)聽接口
1.ServletRequestListener接口
和ServletContextListener接口類似的,這里由ServletContext改為ServletRequest
2.ServletRequestAttributeListener接口
和ServletContextListener接口類似的,這里由ServletContext改為ServletReques
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Servlet過濾器和監(jiān)聽器知識總結(jié)
最全的Java筆試題庫之選擇題篇-總共234道【121~180】
介紹一下JSP中application的用法。
j2ee四大作用域pagecontext,request,session,ServletContext
<context
過濾器、監(jiān)聽器
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服