无状态BEAN应该不能,听说它的寿命是由EJB容器管理的,而且它的实例是复用的。有状态BEAN我不知道了,没用过,呵呵~
解决方案 »
- 父类子类问题
- 初学java遇到了难题?????
- Java线程中的局部变量?
- jacob操作word文档问题,为什么在其他机器上没办法进行ComThread.InitSTA();//初始化com的线程
- 限制了JTextField如何还原限制
- 可否推荐一本描写java类库的整体架构的书,语法就免了!
- 以前是他们教我设置的,一直在我机器上,我需要时就改一改。不幸的是,前几天我的硬盘坏了,我怎么敢想不起来当初如何设的了。当初开发的
- 新手学JAVA的问题!
- 谁知道哪有《21天学通Java2第三版》的电子书下载,最好是英文版
- 写一个类,得到一个目录的大小
- 小弟问大家一个简单的问题:
- 奇怪,CSDN的贴子,提问部分我最多能看到第4行??!!
void sessionCreated(HttpSessionEvent event);
void sessionDestroyed(HttpSessionEvent event);
分别是在创建和结束Session时调用。定义一个类实现HttpSessionListener接口,say,MyListenerpublic class MyListener implements HttpSessionListener {
// 定义上述两个方法
}在web.xml中,加上这一段:<listener>
<listener-class>MyListener</listener-class>
</listener>
BTW:MyListener还可以实现其它一些Listener接口,比如
ServletContextListener:在一个application启动和结束时调用
ServletContextAttributeListener: 在向application增加、删除和修改
Attributes时调用
HttpSessionActivationListener: 分布式环境下Session激活和失活时调用
HttpSessionAttributeListener: 在向session增加、删除和修改属性时调用
HttpSessionBindingListener:向session绑定一个属性时调用。
import javax.servlet.http.HttpSessionListener;public class SessionCounter
implements HttpSessionListener
{ private static int activeSessions = 0; public SessionCounter()
{
} public void sessionCreated(HttpSessionEvent se)
{
activeSessions++;
} public void sessionDestroyed(HttpSessionEvent se)
{
if(activeSessions > 0)
activeSessions--;
} public static int getActiveSessions()
{
return activeSessions;
}}
不过我要做的东东可能还要帮我想一下
比如我想把这个结束的session的id写到某个文件里怎么办?
或者我想在session结束前把这个session里的一些信息写到数据库里,比如把该session经历过的页面记录到数据库中
比如我想用户登陆的时候,把用户名登记到数据库的在线名单表中
当session结束的时候,把该用户从在线名单表中删除
1,把session经历过的页面纪录可以使用filter!!!也很简单!2,要看你是用什么服务器了如果服务器不支持sevrlet2.3就不能用sessionListener了!!!和filter了!!(目前iplanet6就不支持2.3
不过它提供了非通用标准的api也可以实现这两个功能)3,就算是支持servlet2.3也无法通过session准确地得到用户下线的时间!
因为session有失效时间,和回收间隔时间,只能在误差为timeout+-reapInterval time时间段保持相对准确!!!4,多看看help文档祝你好运!!!
当session结束的时候,把该用户从在线名单表中删除
//通过se.getSession()方法就能拿到这个session
}
HttpSessionListener.sessionDestroyed(HttpSessionEvent se) {
//通过se.getSession()方法就能拿到这个session
}