易截截图软件、单文件、免安装、纯绿色、仅160KB

使用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,用来统计当前在线用户数


相关文档:

java与js的正则表达式

正则表达式是用来校验文本框中所输入的值是否匹配。一般在swing里面和js脚本校验中用得蛮多的。
喜欢上正则是在一次做小数点的验证上,就是要判断输入的值的长度在5位,可以有小数点。如果不用正则,那么我得判断小数点是不是只有一个,小数点是不是在第一位,是不是在最后一位,那些情况都要排除的。当然,这样做一下,可 ......

常用Java Date方法

1.计算某一月份的最大天数
Calendar time=Calendar.getInstance();
time.clear();
time.set(Calendar.YEAR,year); //year 为 int
time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为0          
int day=time.getActualMaximum(Calendar ......

java_管道输入输出流示例

package javatest_danny;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
public class pipeStreamTest {
 public static void main(String[] args) {
  try
  {
    &nbs ......

java获取客户端ip

public String getIpAddr(HttpServletRequest request) {
        String ip = request.getHeader("x-forwarded-for");
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
       ......

java线程

一种是继承自Thread类.Thread 类是一个具体的类,即不是抽象类,该类封装了线程的行为。要创建一个线程,程序员必须创建一个从 Thread 类导出的新类。程序员通过覆盖 Thread 的 run() 函数来完成有用的工作。用户并不直接调用此函数;而是通过调用 Thread 的 start() 函数,该函数再调用 run()。
   
&nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号