jsp中的监听器

一、监听器

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import javax.servlet.http.HttpSessionBindingEvent;

@WebListener()
public class myListener implements ServletContextListener,
        HttpSessionListener, HttpSessionAttributeListener {

    // Public constructor is required by servlet spec
    public myListener() {
    }

    // -------------------------------------------------------
    // ServletContextListener implementation
    // -------------------------------------------------------
    //创建一个公用的数字
    public void contextInitialized(ServletContextEvent sce) {
      /* 应用程序打开,获取ServletContextEvent中的内容*/

    }

    public void contextDestroyed(ServletContextEvent sce) {
      /*应用程序关闭*/
    }

    // -------------------------------------------------------
    // HttpSessionListener implementation
    // -------------------------------------------------------
    public void sessionCreated(HttpSessionEvent se) {
        /*会话被创建*/
       Integer i = (Integer) se.getSession().getServletContext().getAttribute("num");
       if (i==null){
           i = new Integer(1);
       }
       i = i.intValue();
       i = new Integer( i +1);
       se.getSession().getServletContext().setAttribute("num",i);

    }

    public void sessionDestroyed(HttpSessionEvent se) {
        /*会话被销毁*/
        Integer i = (Integer) se.getSession().getServletContext().getAttribute("num");
        i = i.intValue();
        i = new Integer(i - 1);
        se.getSession().getServletContext().setAttribute("num",i);
    }
    // -------------------------------------------------------
    // HttpSessionAttributeListener implementation
    // -------------------------------------------------------
    public void attributeAdded(HttpSessionBindingEvent sbe) {
      /* 执行这个方法时,会话中会增加一个属性*/
    }
    public void attributeRemoved(HttpSessionBindingEvent sbe) {
      /*执行这个方法时,会话中的属性会被删除*/
    }
    public void attributeReplaced(HttpSessionBindingEvent sbe) {
      /* 执行这个方法时,会话中的属性会被替换*/
    }
}

二、xml配置

<!--监听器一般放在最底部-->
    <session-config>
        <!--设置会话被销毁时间-->
        <session-timeout>30</session-timeout>
    </session-config>
    <listener>
        <!--设置监听器的地址-->
        <listener-class>myListener</listener-class>
    </listener>
</web-app>

猜你喜欢

转载自blog.csdn.net/scbiaosdo/article/details/81395425