用户退出登录删除登录日志表记录

前提是在登录方法的时候setAttribute("onlineinfo",onlineinfoEntity);
以下是对web.xml中session时间自动失效后的操作,或者,用户主动退出时候也可用此方法。

package org.springside.modules.web.struts2;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionActivationListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

import org.springframework.stereotype.Component;
import org.springside.modules.utils.ContextUtil;

import com.ictrep.base.entity.onlines.OnlineInfo;
import com.ictrep.base.entity.onlines.OnlineOutLog;
import com.ictrep.base.service.onlines.OnlineInfoManager;
import com.ictrep.base.service.onlines.OnlineOutLogManager;
import com.ictrep.base.web.base.onlines.OnlineinfoAction;
import com.ictrep.base.web.base.onlines.OnlineoutlogAction;

/**
* Application Lifecycle Listener implementation class CountSessionListener
* @author Lnw
* @date 2012-06-15
*/
//,HttpSessionAttributeListener,HttpSessionActivationListener,HttpSessionBindingListener
@Component
public class CountSessionListener implements HttpSessionListener{

/*@Autowired
private OnlineInfoManager onlineinfoManager;*/
//onlineinfoManager

/**
* Default constructor.
*/
public CountSessionListener() {
System.out.println("启动了。。。。。。");
}

/* public static ServletContext getServletContext() {
// WebContext wc = WebContextFactory.get();
// if (wc != null) {
// return wc.getServletContext();
// } else
//{
ServletContext context = ContextUtil.get(Constant.SERVLET_CONTEXT, ServletContext.class);
if (context != null) {
return context;
}
//}
//logger.warn("此方法只能在Web服务器环境下使用.");
return null;
}

public static ApplicationContext getWebApplicationContext() {
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
return ctx;
}*/

/**
* @正常退出系统时
* @与非正常退出时
* 都走此方法attributeRemoved()
* 但是要分情况
*/
// user exit
//private List<OnlineInfo> m_info=new ArrayList<OnlineInfo>();
public void sessionDestroyed(HttpSessionEvent system_exitEvent) {
String userid=((String)system_exitEvent.getSession().getAttribute("userId_date")).split("_")[0];
OnlineInfo info=(OnlineInfo)system_exitEvent.getSession().getAttribute("onlineinfo");
//m_info.add(info);
OnlineOutLog outlog=new OnlineOutLog();
//如果数据库中有id为这个的对象 就去 删除 SYSTEM_ONLINE表中当前退出用户 id的记录
System.out.println("监听器: "+info.getUser().getUsername());
//if(onlineinfoManager.getOlineInfoById(info.getId()).size()>0){
if(userid.equals(String.valueOf(info.getUser().getId()))){
outlog.setUser(info.getUser());
outlog.setDepartment(info.getDepartment());
outlog.setLogindate(info.getLogindate());
outlog.setLastvisitdate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
outlog.setSessionid(info.getSessionid());
outlog.setIpaddress(info.getIpaddress());
outlog.setSyscode(info.getSyscode());
}
//}
try{
OnlineInfoManager onlineinfoManager= ContextUtil.getBean("onlineinfoManager", OnlineInfoManager.class); //拿到login manager
OnlineOutLogManager online_OutManager= ContextUtil.getBean("onlineoutlogManager", OnlineOutLogManager.class); //拿到out manager
online_OutManager.save(outlog); //保存日志记录
onlineinfoManager.removeObject(info.getId()); //删除登录记录

}catch (Exception e) {
//System.out.println("异常:"+info.getUser().getUsername());
//e.printStackTrace();
System.out.println(e.getMessage());
//m_info.clear();
}
}

public void sessionCreated(HttpSessionEvent arg0) {
// TODO Auto-generated method stub

}


public void attributeAdded(HttpSessionBindingEvent arg0) {
// TODO Auto-generated method stub

}


public void attributeReplaced(HttpSessionBindingEvent arg0) {
// TODO Auto-generated method stub

}

public void sessionDidActivate(HttpSessionEvent arg0) {
// TODO Auto-generated method stub

}

public void sessionWillPassivate(HttpSessionEvent arg0) {
// TODO Auto-generated method stub

}

public void valueBound(HttpSessionBindingEvent arg0) {
// TODO Auto-generated method stub

}

public void valueUnbound(HttpSessionBindingEvent arg0) {
// TODO Auto-generated method stub

}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值