打印本文 打印本文 关闭窗口 关闭窗口
用xmlhttp和Java session监听改善站内消息系统2
作者:武汉SEO闵涛  文章来源:敏韬网  点击数625  更新时间:2009/4/23 10:55:24  文章录入:mintao  责任编辑:mintao

  2、 Attribute监听

  作为一个站内消息系统,肯定要获得所有登陆者的ID,才有可能互发消息。这就涉及Attribute监听。假设我们写了个用户登陆的模块,用户通过身份验证之后会产生一个session,保存它的相关信息,比如:


//check.jsp
<%
String name=request.getParameter(“name”);
Name=new String(name.getBytes(“ISO8859-1”));
session.setAttribute(“user”,name);
%>

  做过jsp的兄弟应该对这段代码再熟悉不过了,下面写个监听器来监听用户登陆,把所有用户的ID保存到一个List当中,这个监听器实作HttpSessionAttributeListener接口:
package org.bromon.test;

import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

public class OnlineList implements HttpSessionAttributeListener
{
private static List list=new ArrayList();

public void attributeAdded(HttpSessionBindingEvent se)
{
if(“user”.equals(se.getName()))
{
list.add(se.getValue());
}
}

public void attributeRemoved(HttpSessionBindingEvent se)
{
if(“user”.equals(se.getName()))
{
list.remove(se.getValue());
}
}

public void attributeReplaced(HttpSessionBindingEvent se){}

public static List getList()
{
return(list);
}
}

  写个简单的jsp来得到用户列表:
&ly;%
java.util.List list=org.bromon.test.OnlineList.getList();
out.println(“共有”+list.size()+”名用户已登陆:”);
for(int I=0;I<lise.size();i++)
{
out.println(list.get(i));
}
%>

  也许你说,这有什么神奇呢,监听session而已,不着急,看看xmlhttp。


作者:bromon    

打印本文 打印本文 关闭窗口 关闭窗口