`

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

    博客分类:
  • J2EE
阅读更多
前提是在登录方法的时候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
		
	}
	
}
分享到:
评论

相关推荐

    unix系统日志系统记录的日志

    最好每天,至少每周一次,取决于你的审查政策。/var/adm/utmp:系统记录的日志,跟踪仍然登录的用户,但有时shell被停止或未清除干净,会有问题 理解其他日志文件的内容有助于安全管理员认清系统中正在发生的事情。

    日志记录管理系统,可以做日志,可以记笔记,QT源代码

    1.日志搜索: 直接在左下方输入文件名称即可完成搜索。 2.日志阅读: 界面右上方可以选择阅读模式,自主确定是否进行阅读。 3.新建日志文件: 直接点击右下角’笔‘按钮,自动跳转编辑界面,输入内容即可,自动识别...

    Healthy_manager.zip

    实现用户登录的退出 实现用户注册 (2)教师饮食管理: 根据教师的相关信息,计算其每天所需热量,给出一周的推荐菜单。 (3)教师健康日志: 用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压...

    日志服务器

    小区专用日志服务器(专业备网监文化部门查询上网记录) 1、记录方便,可以装在内网或者公网电脑上,WINDOWS平台。 2、详细记录每个用户的IP记录、 3、维护方便,适用单线,或者多线叠加等复杂环境,不会影响...

    网站蜘蛛记录器 v1.3

    防止别人偷窥网站重要信息记录用户访问日志,可以方便的找出黑客的扫描记录.比如黑客在找的SQL注入日志不止记录IP,还可以方便查询到此IP所在的地区.IP库是调用我们IP限制系统的数据库演示地址 http000软件声明个人...

    基于Python入侵检测,取证window日志系统框架 html + css + jquery + python 3.9

    基于Python入侵检测,取证window日志系统 ...set global sql_safe_updates=0; VMware win10_en 测试机。 实时监控计算机日志,如果发生以下行为取证规则,...退出登录 部分数据库设计winLogSystem Admin管理员表 id(主

    基于Python入侵检测,取证window日志系统,框架 html + css + jquery + python 3.9

    基于Python入侵检测,取证window日志系统 ...set global sql_safe_updates=0; VMware win10_en 测试机。...退出登录 部分数据库设计winLogSystem Admin管理员表 id(主键) user(用户名) pwd(密码) Lo

    基于SSH的健康管理系统源码

    实现用户登录的退出 实现用户注册 (2)教师饮食管理: 根据教师的相关信息,计算其每天所需热量,给出一周的推荐菜单。 (3)教师健康日志: 用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压...

    04.基于javaEE健康管理系统源码

    实现用户登录的退出 实现用户注册 (2)饮食管理: 根据相关信息,计算其每天所需热量,给出一周的推荐菜单。 (3)健康日志: 用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压,体重等情况。 ...

    日志记录管理系统 软件下载 适用于Windows

    1.日志搜索: 直接在左下方输入文件名称即可完成搜索。 2.日志阅读: 界面右上方可以选择阅读模式,自主确定是否进行阅读。 3.新建日志文件: 直接点击右下角’笔‘按钮,自动跳转编辑界面,输入内容即可,自动识别...

    Record App crash log and upload by email

    如果app退出,则将app的崩溃日志记录在某个文件下面; 2.当用户再次打开app的时候,提示,用户是否上传错误日志; 3.如果用户选择是,就将错误日志以附件的形式,添加到发送的邮件中; 4.选择否,就直接删除...

    基于javaEE+SSH+Oracle健康管理系统(源码+数据库sql+论文+视频齐全)

    实现用户登录的退出 实现用户注册 (2)教师饮食管理: 根据教师的相关信息,计算其每天所需热量,给出一周的推荐菜单。 (3)教师健康日志: 用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压...

    javaEE健康管理系统SSH-oracle(源码+数据库sql+lun文+视频齐全).zip

    实现用户登录的退出 实现用户注册 (2)教师饮食管理: 根据教师的相关信息,计算其每天所需热量,给出一周的推荐菜单。 (3)教师健康日志: 用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压...

    javaEE健康管理系统SSH-oracle(源码+数据库sql+lun文+视频齐全).rar

    实现用户登录的退出 实现用户注册 (2)教师饮食管理: 根据教师的相关信息,计算其每天所需热量,给出一周的推荐菜单。 (3)教师健康日志: 用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压...

    javaEE健康管理系统.zip

    实现用户登录的退出 实现用户注册 (2)教师饮食管理: 根据教师的相关信息,计算其每天所需热量,给出一周的推荐菜单。 (3)教师健康日志: 用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压...

    基于java的员工健康管理系统含文档

    实现用户登录的退出 实现用户注册 (2)员工饮食管理: 根据员工的相关信息,计算其每天所需热量,给出一周的推荐菜单。 (3)员工健康日志: 用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压,体重...

    基于javaEE健康管理系统SSH毕业论文文档+java源码文件+视频说明.zip

    实现用户登录的退出 实现用户注册 (2)教师饮食管理: 根据教师的相关信息,计算其每天所需热量,给出一周的推荐菜单。 (3)教师健康日志: 用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压...

    健康管理平台设计与实现

    实现用户登录的退出 实现用户注册 (2)教师饮食管理: 根据教师的相关信息,计算其每天所需热量,给出一周的推荐菜单。 (3)教师健康日志: 用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压...

    健康管理系统 SSH oracle数据库sql+视频齐全:) javaEE 源码

    实现用户登录的退出 实现用户注册 (2)教师饮食管理: 根据教师的相关信息,计算其每天所需热量,给出一周的推荐菜单。 (3)教师健康日志: 用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压...

    毕业设计javaEE健康管理系统SSH-oracle(源码+数据库sql+论文+视频齐全).rar

    实现用户登录的退出 实现用户注册 (2)教师饮食管理: 根据教师的相关信息,计算其每天所需热量,给出一周的推荐菜单。 (3)教师健康日志: 用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压...

Global site tag (gtag.js) - Google Analytics