监听器

作者: yzw12138 | 来源:发表于2017-12-15 22:55 被阅读0次

    一、监听器定义

    • 现实生活
    Paste_Image.png

    -web监听器

    Paste_Image.png Paste_Image.png

    二、web监听器应用

    Paste_Image.png

    三、创建监听器

    • 1、创建一个实现监听器接口的类。
     public class FirstListener implements ServletContextListener {
        @Override
        //销毁方法
        public void contextDestroyed(ServletContextEvent arg0) {
            System.out.println("contextDestroyed");
        }
        @Override
        //初始化方法
        public void contextInitialized(ServletContextEvent arg0) {
            System.out.println("contextInitialized");
        }
    }
    
    • 2、配置web.xml进行注册。
      <listener>
        <listener-class>com.imooc.FirstListener</listener-class>
      </listener>
    

    四、监听器的启动顺序

    Paste_Image.png

    五、监听器分类

    • 1、按监听对象划分
    • 2、按监听事件划分
    Paste_Image.png Paste_Image.png
    • ServletConntext初始化方法:定时器或者全局属性对象
      1、配置web.xml:
      <context-param>
        <param-name>initParam</param-name>
        <param-value>imooc</param-value>
      </context-param>
    

    2、类中调用:

    public void contextInitialized(ServletContextEvent arg0) {
            String initParam=arg0.getServletContext().getInitParameter("initParam");
            System.out.println("contextInitialized:initParam="+initParam);
        }
    
    • HttpSession监听器:统计在线人数或者记录访问日志
      1、配置web.xml:
      <listener>
        <listener-class>mypackage.MySessionListener</listener-class>
      </listener>
    

    2、类中调用:

    public class HttpSessionListener implements javax.servlet.http.HttpSessionListener {
        @Override
        //初始化方法
        public void sessionCreated(HttpSessionEvent arg0) {
            System.out.println("sessionCreated");
        }
        @Override
        //销毁方法
        public void sessionDestroyed(HttpSessionEvent arg0) {
            System.out.println("sessionDestroyed");
        }
    }
    
    • 销毁session
      1.关闭服务器
      2.关闭浏览器
      3.不关闭浏览器,session超时,可以在web.xml配置session超时的时间
    <session-config>
    <session-timeout>0</session-timeout>
    </session-config>
    

    0:session没有超时的限制
    1:session超时1分钟后销毁,但是并不是准确的一分钟

    • ServletRequest监听器:读取参数或者记录访问历史
    public class ServletRequestListener implements javax.servlet.ServletRequestListener {
        @Override
        public void requestDestroyed(ServletRequestEvent arg0) {
            System.out.println("requestDestroyed");
        }
        @Override
        public void requestInitialized(ServletRequestEvent arg0) {
            String name=arg0.getServletRequest().getParameter("name");
            System.out.println("requestInitialized"+name);
        }
    }
    
    Paste_Image.png

    相关文章

      网友评论

          本文标题:监听器

          本文链接:https://www.haomeiwen.com/subject/ffbjcxtx.html