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");
        }
    
    }
  • 相关阅读:
    Markdown简单介绍和基本的语法
    Unsupported major.minor version 51.0问题的解决
    Android高级控件(一)——ListView绑定CheckBox实现全选,添加和删除等功能
    kqueue演示样例
    华为离职副总裁徐家骏的工作感悟
    菜鸟之路-浅谈设计模式之单例设计模式
    【gsl】生成随机数
    【C语言】pragma
    【数据结构】二叉堆
    【编程题目】查找最小的 k 个元素
  • 原文地址:https://www.cnblogs.com/SasaL/p/10672394.html
Copyright © 2011-2022 走看看