zoukankan      html  css  js  c++  java
  • 监听器 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");
        }
    
    }
  • 相关阅读:
    java基础面试题(一)
    关于Redis的十个高频面试问题
    postgres中的merge join
    cgdb调试postgresql
    再见了,程序员!
    掌握这个小技巧,让你的 C++ 编译速度提升 50 倍!
    C语言修仙大法!基础知识全复习(纯干货)!!!
    一锅端了!北京朝阳一互联网公司被端,警方上门,23人被带走…
    C++入口不是main?知乎上都快打起来了,你们不要再打了啦!
    不用创建项目,直接在 VS 里快速测试 C/C++ 代码 !
  • 原文地址:https://www.cnblogs.com/SasaL/p/10672394.html
Copyright © 2011-2022 走看看