• 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

  • 相关阅读:
    webdav srs相关
    How To Configure WebDAV Access with Apache on Ubuntu 14.04
    ubuntu 编译lighttpd
    srs编译及推流测试
    Compile pciutils (lspci, setpci) in Windows x86,在 Windows x86 平台下编译 pciutils (lspci, setpci)
    mingw MSYS2 区别
    Qt之美(三):隐式共享
    Qt之美(二):元对象
    Qt之美(一):d指针/p指针详解
    C++的栈空间和堆空间
  • 原文地址:https://www.cnblogs.com/harryV/p/3678032.html
Copyright © 2020-2023  润新知