使用java 监听器实现在线人数统计
1. 在工程中创建监听类SessionListener 并且实现HttpSessionListener接口,代码如下
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class SessionListener implements HttpSessionListener {
private static int count = 0;
public void sessionCreated(HttpSessionEvent se) {
count++;
System.out.println("session创建:" + new java.util.Date());
}
public void sessionDestroyed(HttpSessionEvent se) {
count--;
System.out.println("session销毁:" + new java.util.Date());
}
public static int getCount() {
return count;
}
}
2. 配置web.xml
<listener>
<description>session监听器</description>
<listener-class>com.xxx.SessionListener</listener-class>
</listener>
3. 在JSP页面中显示在线人数
<%
int count=com.xxx.SessionListener.getCount();
out.println("在线人数:"+count);
%>
注意:servlet中对session的监听有很多接口,功能很灵活,最常用的是监听Session和Attribute。这里要澄清一下概念,servlet中的session监听和Attribute监听含义有差别,session监听指的不是我们一般所理解的放置一个session或者销毁一个session,这是Attribute监听的功能,因为servlet中放置session的语法是session.setAttribute(“session名”,要放入的对象)。而session监听,监听的是HTTP连接,只要有用户与server连接,就算连接的是一个空白的jsp页面,也会触发session事件,所以此处的session实际上指的是connection,用来统计当前在线用户数
相关文档:
1.2.5.Method类:
Method代表某个类的一个方法,提供关于类或接口上单独某个方法的信息。所反映的方法可能是类方法或实例方法(包括抽象方法)。 这个类不难理解,它是用来封装反射类方法的一个类。
方法
描述
public String getName()
返回此 Method 对象表示的方法名称
public Object invoke(Object obj,Object... ......
import java.io.File;
import java.text.DecimalFormat;
import java.io.FileInputStream;
public class GetFileSize
{
public long getFileSizes(File f) throws Exception{//取得文件大小
long s=0;
......
jdk,j2ee,j2se,j2me的概念区别
1.
JDK是Java development toolkit,相当于是Java的库函数,是编译,运行java程序的工具包。
J2EE是Java 2 enterprise edition是Java的一种企业版用于企业级的应用服务开发
J2SE是Java 2 standard edition是Java的标准版,用于标准的应用开发
J2ME是Java 2 Micro Edition是Java的微型版,常 ......
一:无返回值的存储过程
存储过程为:
CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS
BEGIN
INSERT INTO HYQ.B_ID (I_ID,I_NAME) VALUES (PARA1, PARA2);
END TESTA;
然后呢,在java里调用时就用下面的代码:
package com.hyq.src;
import java.sql.*;
import j ......
一种是继承自Thread类.Thread 类是一个具体的类,即不是抽象类,该类封装了线程的行为。要创建一个线程,程序员必须创建一个从 Thread 类导出的新类。程序员通过覆盖 Thread 的 run() 函数来完成有用的工作。用户并不直接调用此函数;而是通过调用 Thread 的 start() 函数,该函数再调用 run()。
&nb ......