public void sessionCreated(HttpSessionEvent hse)
{
//怎么在此处取得Session(SysUserID)的值
hse.getSession().getAttribute(.....);
}
{
//怎么在此处取得Session(SysUserID)的值
hse.getSession().getAttribute(.....);
}
解决方案 »
- jsp画面加载问题
- ioc 注入空值
- 悬赏RMB 就是用java座一个抓图很简单的
- struts2 输入框问题
- 为什么Session.invalidate()后request.getSession(true)又得到一个session的id不同,但刷新以后session的id就相同了
- resin 3.0.8 端口80,启动正常,为什么访问确显示404错误,resin3.0.8好像没有 响应
- 请问怎样实现,提交数据后,提示,正在提交,请稍候,而不是看到的正在打开网页的提示
- 请高手看看做用户注册表单哪错了?有错误提示代码(急!!)
- form表單中field欄位中,從數據庫中選擇條件欄位,並插入一個數值。高分求源碼!
- 为什么分页显示的时候不能显示第一条记录??
- 用JSP输出Word文档,如何去掉“文件下载”提示?(急)
- 如何在Jsp开发的程序上增加图形
import javax.servlet.http.*;
import com.hmkt.javabean.*;public class SessionCount implements HttpSessionAttributeListener
{ private static int activeSessions = 0;public void attributeAdded(HttpSessionBindingEvent se)
{
if("ip".equals(se.getName()))
{
String ip = (String)se.getValue();
//System.out.println(ip + "******");
activeSessions++;
}
}public void attributeRemoved(HttpSessionBindingEvent se)
{
if(activeSessions > 0)
activeSessions--;
}public void attributeReplaced(HttpSessionBindingEvent se){}public static int getActiveSessions() {
return activeSessions;
}
}
而监听器里面得到的是刚刚创建的session,所以是不一样的
监听session实现一个接口HttpSessionListener
public class OnlineCounter implements HttpSessionListener
{
public void sessionCreated(HttpSessionEvent hse)
{
刚刚创建一个session的时候
session.setAttibute("startTime",new Date());
}
public void sessionDestroyed(HttpSessionEvent h)
{
}
}
用户退出的时候
session.getAttibute("startTime");
Date current=new Date();
//减一下就行了
public class OnlineCounter implements HttpSessionListener
{ public void sessionCreated(HttpSessionEvent hse)
{
Date pobjDate = new Date();
startTime = pobjDate.getTime();
}
public void sessionDestroyed(HttpSessionEvent h)
{
Date pobjDate = new Date();
endTime = pobjDate.getTime();
}
public static String getOnline()
{
long margin = (endTime-startTime)/(1000*60);
return margin;
}
}
但我要把这个时间,放入到数据库中,每次登录的时间我都要记下来
但我怎么样确定是哪一个用户的登录时间呢?希望能指点一二?(分数不够可以再加)
我的QQ 275829337 MSN [email protected]我下个月要交了,希望能得到你的帮助!!
谢谢!
我的意思是这样
用户登陆的同时,你把时间记下来
注意::不在这个接口里面操作
session.setAttibute("username","xxx");
session.setAttrbite("startTime",new Date);在接口里面的sessionDestroyed()方法里面
对于每一个session,
String name=h.getSession.getAttribute("userName");
Date start=(Date)h.getSession.getAttribute("startTime");
date current=new Date();
.....//这里就可以根据用户名写入数据库了
在session产生的时候就要把用户信息写进session里面,这样才能在以后得到session对应的用户吧。
不會覆蓋startTime的值嗎,哈哈.一個用戶是沒有問題的,多個用戶有問題了.
session.setAttrbite("startTime",new Date);是针对某一个用户的,每一个用户都是不一样的啊在sessionDestroyed()方法里面
session.getAttribute("startTime");是针对超时的用户
我先取出name,然后根据name把相应的时间写入数据库啊