读书人

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

发布时间: 2012-06-30 17:20:12 作者: rapoo

用户退出登录删除登录日志表记录
前提是在登录方法的时候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@Componentpublic class CountSessionListener implements HttpSessionListener{/*@Autowiredprivate 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 managerOnlineOutLogManager online_OutManager= ContextUtil.getBean("onlineoutlogManager", OnlineOutLogManager.class); //拿到out manageronline_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}}

读书人网 >行业软件

热点推荐