1.监听器监控上下线
public class LoginListener implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent event) {
}
public void sessionDestroyed(HttpSessionEvent event) {
HttpSession session = event.getSession();
User user = (User) session.getAttribute("user");
if (null != user && StringUtils.isNotEmpty(user.getUserID())) {
CacheManager cacheManager = CacheManager.getInstance();
cacheManager.remove(user.getUserID());
Log.logInfo("用户:" + user.getUserID() + " session失效,清除登录缓存信息...");
OperWaterDaoImpl ow = new OperWaterDaoImpl();
MyBatisDBAccess dbAccess = MyBatisDBAccess.getInstance();
try {
dbAccess.startTransction();
// 插入操作表
ow.insertOperWater(WorkDate.getSystemTime(), "C", BS.BS_C_LOGIN, "用户退出系统", user.getUserID(), dbAccess);
dbAccess.commitTransction();
} catch (Exception e) {
Log.logWarning("退出系统记录插入日志异常", e);
dbAccess.rollBack();
} finally {
dbAccess.endTransction();
}
}
}
}