ITPub博客

首页 > 应用开发 > Java > portlet关于统计在线人数的问题

portlet关于统计在线人数的问题

原创 Java 作者:swcracker 时间:2007-03-09 14:53:24 0 删除 编辑

portlet关于统计在线人数的问题

问题:jsp中是实现HttpSessionListener接口,portlet中怎么不行呢,还是另有别的接口?
我的wps是5.1的,经测试登陆的用户可以记录,代码如下

private static int activeSessions = 0;

/**
* @see javax.servlet.http.HttpSessionListener#sessionCreated(javax.servlet.http.HttpSessionEvent)
*/
public void sessionCreated(HttpSessionEvent se) {
activeSessions++;
saveOnlineNum();
}

/**
* @see javax.servlet.http.HttpSessionListener#sessionDestroyed(javax.servlet.http.HttpSessionEvent)
*/
public void sessionDestroyed(HttpSessionEvent se) {
if(activeSessions > 0)
activeSessions--;
}

/**
* 获得当前在线人数
* @return 当前在线人数
*/
public static int getActiveSessions() {
return activeSessions;
}

匿名的好像不能记录,提示:NO PORTLET SESSION YET 。
不知道自己怎么定制呢?给个提示,谢谢

[@more@]

解答:

哈哈,那你可是问对地方啦!可能只有我能解答你的问题啦。呵呵!

其实实现此功能也不是特别困难,重要的是您必须了解整个Portal容器的工作机理。由于篇幅问题,我就不在此处过多的阐述Portal容器是如何工作的。

针对您提出的在线人数统计问题,您只要了解到:整个Portal页面是如何被组装和渲染的,即Portal页面的根在哪儿。Portal页面的根存在于Portal Server的 installedApps 目录下wps EAR应用中,如果您定制过themes和skins就知道了。

那么关于在线人数的统计,即人数的统计必须要在此EAR 的wps应用中进行过虑和跟踪。
比如在WEB-INFweb.xml的配置文件中,加入如下 filter和listener


ClickStreamFilter
ClickStreamFilter

com.ibm.portal.user.utils.CustomClickStreamFilter


ClickStreamFilter
/*

......
......


com.ibm.portal.user.utils.CustomClickStreamListener

附件: wps_library.rar

附件: onlineusers.rar

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8819325/viewspace-903604/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    11
  • 访问量
    17049