zoukankan      html  css  js  c++  java
  • Listener

    ServletContextListener:监听web的启动和关闭。

    package com.li.test;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
    import javax.servlet.annotation.WebListener;
    
    /**
     * Application Lifecycle Listener implementation class ListerTest_1
     * 
     */
    @WebListener
    public class ListerTest_1 implements ServletContextListener {
    
        /**
         * Default constructor.
         */
        public ListerTest_1() {}
    
        /**
         * @see ServletContextListener#contextInitialized(ServletContextEvent)
         */
        public void contextInitialized(ServletContextEvent event) {
    
            ServletContext context = event.getServletContext();
    
            String driver = context.getInitParameter("driver");
            String username = context.getInitParameter("username");
            String password = context.getInitParameter("password");
            String url = context.getInitParameter("url");
    
            try {
    
                Class.forName(driver);
                Connection conn = DriverManager.getConnection(url, username, password);
                context.setAttribute("conn", conn);
    
            } catch (Exception e) {
                System.out.println("connect error: " + e.getMessage());
                e.printStackTrace();
            }
    
        }
    
        /**
         * @see ServletContextListener#contextDestroyed(ServletContextEvent)
         */
        public void contextDestroyed(ServletContextEvent event) {
    
            ServletContext context = event.getServletContext();
            Connection conn = (Connection) context.getAttribute("conn");
    
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    
    }

    ServletContextAttributeListener:监听application范围内的属性的变化。

    package com.li.test;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletContextAttributeEvent;
    import javax.servlet.ServletContextAttributeListener;
    import javax.servlet.annotation.WebListener;
    
    /**
     * Application Lifecycle Listener implementation class ListerTest_2
     * 
     */
    @WebListener
    public class ListerTest_2 implements ServletContextAttributeListener {
    
        /**
         * Default constructor.
         */
        public ListerTest_2() {}
    
        /**
         * @see ServletContextAttributeListener#attributeAdded(ServletContextAttributeEvent)
         */
        public void attributeAdded(ServletContextAttributeEvent event) {
            
            ServletContext application = event.getServletContext();
            
            String name = event.getName();
            Object value = event.getValue();
            
            System.out.println(application+"范围内添加了属性:"+name+",值为:"+value);
        }
    
        /**
         * @see ServletContextAttributeListener#attributeReplaced(ServletContextAttributeEvent)
         */
        public void attributeReplaced(ServletContextAttributeEvent event) {
            
    ServletContext application = event.getServletContext();
            
            String name = event.getName();
            Object value = event.getValue();
            
            System.out.println(application+"范围内删除了属性:"+name+",值为:"+value);
        }
    
        /**
         * @see ServletContextAttributeListener#attributeRemoved(ServletContextAttributeEvent)
         */
        public void attributeRemoved(ServletContextAttributeEvent event) {
            
    ServletContext application = event.getServletContext();
            
            String name = event.getName();
            Object value = event.getValue();
            
            System.out.println(application+"范围内修改了属性:"+name+",值为:"+value);
        }
    
    }

    HttpSessionListener:监听session的开始和结束。

    HttpSessionAttributeListener

    HttpSessionActivationListener

    HttpSessionBindingListener

    package com.li.test;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import javax.servlet.ServletContext;
    import javax.servlet.annotation.WebListener;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpSessionAttributeListener;
    import javax.servlet.http.HttpSessionBindingEvent;
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;
    
    /**
     * Application Lifecycle Listener implementation class ListerTest_4
     * 
     */
    @WebListener
    public class ListerTest_4 implements HttpSessionListener, HttpSessionAttributeListener {
    
        /**
         * Default constructor.
         */
        public ListerTest_4() {}
    
        /**
         * @see HttpSessionAttributeListener#attributeRemoved(HttpSessionBindingEvent)
         */
        public void attributeRemoved(HttpSessionBindingEvent arg0) {}
    
        /**
         * @see HttpSessionAttributeListener#attributeAdded(HttpSessionBindingEvent)
         */
        public void attributeAdded(HttpSessionBindingEvent arg0) {}
    
        /**
         * @see HttpSessionAttributeListener#attributeReplaced(HttpSessionBindingEvent)
         */
        public void attributeReplaced(HttpSessionBindingEvent arg0) {}
    
        /**
         * @see HttpSessionListener#sessionCreated(HttpSessionEvent)
         */
        public void sessionCreated(HttpSessionEvent sv) {
    
            HttpSession session = sv.getSession();
            ServletContext application = session.getServletContext();
            String sessionId = session.getId();
    
            if (session.isNew()) {
    
                String user = (String) session.getAttribute("user");
                user = (user == null) ? "游客" : user;
    
                Map<String, String> online = (Map<String, String>) application.getAttribute("online");
                if (online == null) {
                    online = new HashMap<String, String>();
                    online.put(sessionId, user);
                }
                application.setAttribute("online", online);
            }
        }
    
        /**
         * @see HttpSessionListener#sessionDestroyed(HttpSessionEvent)
         */
        public void sessionDestroyed(HttpSessionEvent sv) {
    
            HttpSession session = sv.getSession();
            ServletContext application = session.getServletContext();
            String sessionId = session.getId();
            Map<String, String> online = (Map<String, String>) application.getAttribute("online");
    
            if (online != null) {
                online.remove(sessionId);
            }
            application.setAttribute("online", online);
        }
    
    }

    ServletRequestListener

    package com.li.test;
    
    import javax.servlet.ServletRequestEvent;
    import javax.servlet.ServletRequestListener;
    import javax.servlet.annotation.WebListener;
    import javax.servlet.http.HttpServletRequest;
    
    /**
     * Application Lifecycle Listener implementation class ListerTest_3
     * 
     */
    @WebListener
    public class ListerTest_3 implements ServletRequestListener {
    
        /**
         * Default constructor.
         */
        public ListerTest_3() {}
    
        /**
         * @see ServletRequestListener#requestDestroyed(ServletRequestEvent)
         */
        public void requestDestroyed(ServletRequestEvent event) {
    
            HttpServletRequest request = (HttpServletRequest) event.getServletRequest();
            System.out.println(request);
        }
    
        /**
         * @see ServletRequestListener#requestInitialized(ServletRequestEvent)
         */
        public void requestInitialized(ServletRequestEvent event) {
    
            HttpServletRequest request = (HttpServletRequest) event.getServletRequest();
            System.out.println(request);
        }
    
    }

    ServletRequestAttributeListener

  • 相关阅读:
    Ubuntu无法初始化软件包信息
    数组名做函数的参数
    Printf函数中%p代表什么数据类型
    assert()函数用法总结
    C语言printf 格式 zz
    零值指针指向何处? zz~
    命名空间“System.Net”中不存在类型或命名空间名称“Sockets”。是否缺少程序集引用?
    AD20配置为中文显示
    sharepoint:实现搜索功能
    sharepoint:爬网完成后上传新文档搜索不到(设定爬网Schedule)
  • 原文地址:https://www.cnblogs.com/harryV/p/3678032.html
Copyright © 2011-2022 走看看