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 。
不知道自己怎么定制呢?给个提示,谢谢
解答:
哈哈,那你可是问对地方啦!可能只有我能解答你的问题啦。呵呵!
其实实现此功能也不是特别困难,重要的是您必须了解整个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博客 ” ,链接:http://blog.itpub.net/8819325/viewspace-903604/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8819325/viewspace-903604/