大数据WEB阶段(十六)JavaEE三大 核心技术之监听器Listener
生活随笔
收集整理的這篇文章主要介紹了
大数据WEB阶段(十六)JavaEE三大 核心技术之监听器Listener
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Listener監(jiān)聽器
一、概述
二、 開發(fā)一個(gè)監(jiān)聽器
三、監(jiān)聽三大作用域創(chuàng)建和銷毀的監(jiān)聽器
ServletContextListener
案例:
寫一個(gè)類實(shí)現(xiàn)監(jiān)聽器接口 public class MyServletContextListener implements ServletContextListener{public void contextDestroyed(ServletContextEvent sce) {System.out.println("servletContext被銷毀"+sce.getServletContext());}public void contextInitialized(ServletContextEvent sce) {System.out.println("servletContext被創(chuàng)建"+sce.getServletContext());}}在web.xml文件中注冊(cè)監(jiān)聽器 <listener><listener-class>com.tj.listener.MyServletContextListener</listener-class> </listener> 下面兩個(gè)監(jiān)聽方式的開發(fā)方式相同HttpSessionListener
生命周期:
銷毀:
超時(shí): 發(fā)呆時(shí)間超過session存活時(shí)間(默認(rèn)30分鐘)
擴(kuò)展: 修改session銷毀時(shí)間為1分鐘<session-config><session-timeout>1</session-timeout> </session-config>意外身亡:服務(wù)器非正常關(guān)閉
擴(kuò)展:session鈍化 、 活化1. 鈍化: 在服務(wù)器正常關(guān)閉時(shí), 仍然在存活期間的session會(huì)被序列化后保存在tomcat的work目錄下2. 活化: 在服務(wù)器正常啟動(dòng)時(shí) , 將仍在存活期間的session讀取到內(nèi)存中 。繼續(xù)使用四、 監(jiān)聽三大作用域中屬性增加和減少的監(jiān)聽器
ServletContextAtrributeListener
案例
創(chuàng)建一個(gè)類 , 并實(shí)現(xiàn)對(duì)應(yīng)的接口public class MyHttpSessionAttributeListener implements HttpSessionAttributeListener{public void attributeAdded(HttpSessionBindingEvent se) {System.out.println("session域中添加了屬性"+se.getName()+":"+se.getValue());}public void attributeRemoved(HttpSessionBindingEvent se) {System.out.println("session域中移除了屬性:"+se.getName()+":"+se.getValue());}public void attributeReplaced(HttpSessionBindingEvent se) {System.out.println("session域中有屬性被替換:"+se.getName()+":"+se.getValue()+"值被替換為:"+se.getSession().getAttribute(se.getName()));}} 在web.xml文件中注冊(cè) <listener><listener-class>com.tj.listener.MyHttpSessionAttributeListener</listener-class> </listener> 下面兩個(gè)開發(fā)方式相同HttpServletSessionAtrributeListener
五、使JavaBean自己感知自己在session作用域中狀態(tài)變化的監(jiān)聽器
案例:
public class Person implements HttpSessionBindingListener,HttpSessionActivationListener,Serializable {private String name;private int age;public Person() {}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public void valueBound(HttpSessionBindingEvent event) {System.out.println("javabean自己感知到自己被存入session了。。。");}public void valueUnbound(HttpSessionBindingEvent event) {System.out.println("javabean自己感知到自己被移除出session了。。。");}public void sessionWillPassivate(HttpSessionEvent se) {System.out.println("javabean自己感知到自己隨著session被鈍化了。。。");}public void sessionDidActivate(HttpSessionEvent se) {System.out.println("javabean自己感知到自己隨著session被活化了。。。");}}六、監(jiān)聽器的應(yīng)用
代碼:
public class MyServletContextListener implements ServletContextListener{public void contextDestroyed(ServletContextEvent sce) {sce.getServletContext().setAttribute("app", sce.getServletContext().getContextPath());}public void contextInitialized(ServletContextEvent sce) {sce.getServletContext().removeAttribute("app");}}在web.xml文件中注冊(cè)監(jiān)聽器<listener><listener-class>com.tj.listener.MyServletContextListener</listener-class></listener>總結(jié)
以上是生活随笔為你收集整理的大数据WEB阶段(十六)JavaEE三大 核心技术之监听器Listener的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据WEB阶段(十五)JavaEE三大
- 下一篇: Java-OpenCV(一)准备工作