Servlet 监听器

来源:互联网 发布:淘宝客自助发单 编辑:程序博客网 时间:2024/05/07 22:57
在Servle规范中定义了多种类型的监听器,它们用于监听事件源分别为ServletContext,HttpSession和ServletRequest这三个域对象。        Servlet规范针对这三个对象上的操作,又把这多种类型的监听器划分为三种类型。        1、监听域对象创建和销毁的事件监听器

        2、监听域对象中属性的增加和删除的事件监听器

       3、监听绑定到HttpSession域中的某个对象的状态的事件监听器

         servletContext域的对象创建和销毁                     创建时调用方法:contextDestroyed                     销毁时调用方法:contextInitialized

        例如

                public class MyServletContextListener implements ServletContextListener {public void contextDestroyed(ServletContextEvent arg0) {System.out.println("context销毁!!!");}public void contextInitialized(ServletContextEvent arg0) {System.out.println("context创建!!!");}}//注册监听器<listener><listener-class>MyServletContextListener</listener-class></listener>

出现的效果如下 :   

            启动服务器的时候context被创建
                关闭服务器的时候context被销毁


import java.util.Calendar;import java.util.Timer;import java.util.TimerTask;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class SendMailListener implements ServletContextListener {private String year = null;         //时间自己可以去设置private String month = null;private String day = null;private String hour =  null;private String min = null;private String mec = null;public void contextDestroyed(ServletContextEvent sce) {// TODO Auto-generated method stub}public void contextInitialized(ServletContextEvent sce) {Calendar c = Calendar.getInstance();c.set(year, month,day, hour, min, mec);Timer timer = new Timer();timer.schedule(new TimerTask(){public void run() {System.out.println("定时执行的方法");}}, c.getTime());}}




    监听HttpSession域对象创建和销毁
        1、HttpSessionListener接口用于监听HttpSessionr wbvft qiva
        2、创建一个Session时,sessionCreated(HttpSessionEven se)方法将会被调用。
        3、销毁一个Session时,SessionDestroyed(HttpSessionEvent se)方法将会被调用。

        import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;public  class MyServletContextListener implements HttpSessionListener {public void sessionCreated(HttpSessionEvent se) {System.out.println("HttpSession创建");}public void sessionDestroyed(HttpSessionEvent se) {System.out.println("HttpSession销毁");}}


当我们去访问这个会话的时候,就会去创建一个Session对象,

会话的时间一过,这相Session就会这被销毁





0 0