• 监听器 Listener


    监听器:监听某个对象状态的变化

    被监听的对象:request、session、servletContext

    监听对象的创建和销毁/对象属性的变化

    ServletContext HttpSession ServletRequest
    ServletContextListener HttpSessionListener ServletRequestListener
    ServletContextAttributeListener HttpSessionAttributeListener ServletRequestAttributeListener

    与session相关的监听器,监听session中的对象

    HttpSessionBindingListener 对象在session绑定或对象从session中解绑

    HttpSessionActivationListener 对象的钝化与活化,(大访问量时考虑将session持久化)

    这两个接口是绑到对象中的,不需要在web.xml中配置

    钝化:将session持久化到磁盘

    活化:将session从磁盘到内存

    tomcat的钝化:

    <?xml version="1.0" encoding="UTF-8"?>
    <Context>
    <!-- maxIdleSwap:session中的对象多长时间不使用就钝化 单位:分钟 -->
    <!-- directory:钝化后的对象的文件写到磁盘的哪个目录下 配置钝化的对象文件在work/catalina/localhost/钝化文件 -->
    <Manager
    className="org.apache.catalina.session.PersistentManager"
    maxIdleSwap="1">
    <Store className="org.apache.catalina.session.FileStore"
    directory="demo01" />
    </Manager>
    </Context>

    package cn.sasa.domain;
    
    import java.io.Serializable;
    
    import javax.servlet.http.HttpSessionActivationListener;
    import javax.servlet.http.HttpSessionBindingEvent;
    import javax.servlet.http.HttpSessionBindingListener;
    import javax.servlet.http.HttpSessionEvent;
    
    //HttpSessionBindingListener--- Customer对象绑定到session或从session解绑
    //HttpSessionActivationListener---钝化/活化。钝化:将session持久化到磁盘。活化:session从磁盘到内存。(大访问量时可将session设置持久化)
    //Serializable 序列化到磁盘
    public class Customer implements HttpSessionBindingListener, HttpSessionActivationListener,Serializable{
    
        private static final long serialVersionUID = 1L;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        private String name;
        
        public void valueBound(HttpSessionBindingEvent event) {
            System.out.println("cus 绑定");
        }
      
        public void valueUnbound(HttpSessionBindingEvent event) {
            System.out.println("cus 解绑");
        }
        //钝化
        public void sessionWillPassivate(HttpSessionEvent se) {
            System.out.println("Customer passivate");
        }
        
        //活化
        public void sessionDidActivate(HttpSessionEvent se) {
            System.out.println("Customer Activate");
        }
    
    }
  • 相关阅读:
    iOS新建项目基础设置
    Burp安装及配置(修改参数测试)
    打开他人代码,如何运行起来
    四、python用户交互程序
    三、python_字符编码与二进制
    二、python_变量要求
    一、python_(入门)
    linux 常用命令之一
    Atcoder Regular Contest 093 C
    「HNOI2016」序列
  • 原文地址:https://www.cnblogs.com/SasaL/p/10672394.html
Copyright © 2020-2023  润新知