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
相关文档:
package sample1;
import java.io.File;
import jp.ne.so_net.ga2.no_ji.jcom.IDispatch;
import jp.ne.so_net.ga2.no_ji.jcom.JComException;
import jp.ne.so_net.ga2.no_ji.jcom.ReleaseManager;
/**
* 使用jCom实现写excel文件的另一种方式(IDispatch)
* @author steve_wang_victor
&nbs ......
/**
* Base64Util for Java
* cheungmine
* 2009-11-8
*/
public class Base64Util {
/**
* @param args
*/
public static void main(String[] args)
{
// 源字节数组
int cb = 0;
System.out.print("源字节数组: ");
byte in[] = new byte[100];
in[cb++]='1';
i ......
1、java基础:
JAVA 开发基础知识 | Eclipse 开发环境 | J2SE 5.0 API | J2SE 6.0新特性 | 多线程技术 | Socket 网络技术 | Regular Expression | Java反射技术 | Properties技术 | 各种实战设计模式Factory系列、Singleton、Strategy、Observer等 | Java Debug技术 | 面向对象设计原则详解 | 实例解决面向对象设计 ......
很多developer知道java也可能memory leak,关于这个主题已经有很多文章了。我这里只想分享一下自己的memory leak的经验。
说明一下这里指的memory leak是程序不及时释放heap导致的OutOfMemoryError.
首先一种情况是collection或者是map一直被put数据,没有机会remove,导致OutOfMemoryError。尤其是当collection或者是map ......
使用java + oracle插入clob类型的数据,需要用以下的步骤:
1、将数据插入数据库,对于clob字段,使其为空clob数据。例如:insert into test values(1,empty_clob())";
2、从数据库中取出插入的clob字段,并将其赋值给oracle.sql.clob类型的变量。例如
String sqll="select content from test where id=1 for upda ......