1.J2SE中的AWT的事件监听
窗口关闭
2.监听三个域对象的创建和销毁
创建
销毁
ServletContextListener //它的事件可以得到ServletContext
HttpSessionListener //它的事件可以得到Session
ServletRequestListener //它的事件可以得到ServletContext和ServlpetRequest
<listener><listener-class>包名.类名</listener-class></listener>
3.统计当前在线人数 定时器
统计当前在线人数:对HttpSession监听,创建加一,销毁减一
定时器:没隔多长时间看Session是否没用,没用的话销毁
java.util.Timer TimerTash任务,抽象的 具体的任务得你自己实现
a.两个监听器:ServletContextListener 和 HttpSessionListener
ServletContextListener ServletContext初始化存放List<Session> 执行定时器
HttpSessionListener HttpSessionListener初始化向List中添加Session, 销毁打印
b.TimerTask 具体的任务自己实现,通过时间差 session上次访问的时间 与 现在的时间
考虑:这两个可不可以结合
4.监听三个域对象属性变化
增加 替换 删除
第二条+Attribute
ServletContextAttributeListener //它的事件可以得到getName getValue
HttpSessionAttributeListener //它的事件名有点特殊叫HttpSessionBindingEvent 可以得到getName getValue getSession
ServletRequestAttributeListener //它的事件可以得到getName getValue
5.感知Session绑定的事件监听器
保存在Session域中的对象可以有多种状态:
(1)绑定到Session中;
(2)从Session域中解除绑定;
(3)随Session对象持久化到一个存储设备中
(4)随Session对象从一个存储设备中恢复
HttpSessionBindingListener //它的事件可以得到getName getValue getSession
我不想监听在Session中的所有对象,
我只想监听特定的某个对象,
我想监听那个对象,那个对象就要实现HttpSessionBindingListener接口
valueBound
valueUnbound
HttpSessionActivationListener //它的事件可以得到getSession
对象持久化:这个对象就要实现Serializable
钝化:内存-->硬盘 sessionDidActivate
活化:硬盘-->内存 sessionWillPassivate
配置的开关:META-INF --> context.xml
6.显示在线用户列表,踢人
a.HttpSessionAttributeListener
用户一登陆,就将User对象放入到Session中,这就是session中attribute的增加
b.用Map存放,key:用户名,value:session
扩展:把它搞复杂,结合以前学的知识
登陆验证(对XML解析)
权限(通过Filter实现URL的权限)
聊天(对字符串的操作) 把它变成一个网页聊天的
7.乱码的分析,结合老毕的PPT
8.Filter中压缩的代码敲完
9.购物车和留言板的代码敲完
10.Cookie, Session, URL重写
11.老张书上的例子:用Session实现一次性验证码
12.总结前面的知识,建立代码库,方便以后扒代码
13.动态代理就不说了,有时间就领悟