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
[Web开发]用xmlhttp和Java session监听改善站内消息系统3 [Web开发]用xmlhttp和Java session监听改善站内消息系统1
|