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

被监听的对象: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");
} }

最新文章

  1. ubuntu 14.04 修改网络配置
  2. DIOCP之编写第一个应用程序(一)
  3. Java程序员的日常—— 基于类的策略模式、List&lt;?&gt;与List、泛型编译警告、同比和环比
  4. win10_x64更新错误解决: 安装一些更新时出现问题,但我们稍后会重试。如果持续出现这些问题,并且你想要搜索Web或联系支持人员以获取相关信息,以下信息可能会对你有帮助:
  5. VPN连接错误800的解决办法
  6. Python培训12期-day2作业-购物车
  7. 设置UWP程序自启动(Automate launching Windows 10 UWP apps)
  8. JavaScript面向对象编程(一)原型与继承
  9. java基础之基础语法详录(一)
  10. 学java网络编程的心得体会
  11. 业余草推荐18个Java开源免费的CMS系统
  12. 【Ubuntu 16】网络配置文件
  13. MongoDb 入门教程
  14. Node Inspector 代理实现
  15. hadoop环境运行程序出现 Retrying connect to server 问题
  16. [Swift]LeetCode1007. 行相等的最少多米诺旋转 | Minimum Domino Rotations For Equal Row
  17. 四、Java多人博客系统-2.0版本
  18. PTA——组合数
  19. Android按键添加和处理的方案
  20. Adobe After Effects CS6 操作记录

热门文章

  1. 【原创】大数据基础之CM5(Cloudera Manager)+CDH5离线安装
  2. nmap简介和使用
  3. Java框架中Struts和Struts2框架的区别
  4. 百度地图api文档实现任意两点之间的最短路线规划
  5. django 第二天
  6. Swift 统计项目中所有按钮的点击次数
  7. BZOJ3160 万径人踪灭 字符串 多项式 Manachar FFT
  8. PyCharm 怎么查看 Python 的变量类型和变量内容
  9. python经典书籍推荐:python编码规范
  10. ECMAScript 6 变量的解构赋值