Java监听器学习 统计当前在线人数
javax.servlet.http.HttpSession 这个类是很常用的,每当我们浏览网站,不论有没有登陆,都会产生1个session,它记录了和浏览者相关的数据;
下面介绍session的2个监听器接口:
1)javax.servlet.http.HttpSessionBindingListener;
实现这个接口的类,每当被存放到session或从session中移除都会出发接口中相应的方法,从而实现监听的效果;
2)javax.servlet.http.HttpSessionListener;
实现这个接口的类,本身就是1个监听器,每当有session生成或消亡时,都触发接口中相应的方法,从而实现监听器的效果;
HttpSessionListener 的实现类本身就是一个监听器,要使用它需要在 web.xml 中启动这个监听器,例如
<listener>
<listener-class>packname.classname</listener-class>
</listener>
3)这2个监听器是有区别的
前者的触发取决于 session 中加入的属性;
后者的触发取决于 session 本身的产生和消亡;
与shangshu 之类似的还有
对ServletContext的监听和对Request监听
应用:当前在线人数列表
在线人数列表是对所有人起作用,数据应放到application中。即ServletContext对象
OnLineDemo.java
package demo;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
/*
* <listener> <listener-class>demo.OnLineDemo</listener-class>
* </listener>
*/
public class OnlineDemo implements ServletContextListener, HttpSessionListener,
HttpSessionAttributeListener {
// 声明一个ServletContext对象
private ServletContext application = null;
public void contextInitialized(ServletContextEvent sce) {
// 容器初始化时,向application中存放一个空的容器
this.application = sce.getServletContext();
this.application.setAttribute
相关文档:
Java学习从入门到精通
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......
/*****************TestCar1 begin************************/
public class TestCar1 {
public static final int Ok=1; //正常情况
public static final int Wrong=2; //异常情况
public int run(){
if("车子没有出现故障"){  ......
1、JavaSE的学习书籍
英文名:《Thinking in Java》
中文名:《Java编程思想》
图 片:
作 者:Bruce Eckel
出版社:机械工业出版社
阅读方法:这本书并不适合一点基础都没有的同学进行阅读,强烈建议学的JavaSE。
然后可以直接学习JavaWEB的内容了,但是如果想备一本书在手边备查的 ......
只说说几道涉及到我有些遗忘的知识点的题目吧~~
1. 关于final的
一下哪几种声明是正确的?
A: private final int FINAL_INTEGER = 0;
B: private final int FINAL_INTEGER;
{
FINAL_INTEGER = 1;
}
C: private final int FINAL_INTEGER;
static{
FINAL_INTEGER = 1;
}
D: private final int FINA ......