📄 visitor.java
字号:
/* * 作者: 胡李青 * qq: 31703299 * Copyright (c) 2007 huliqing * 主页 http://www.tbuy.biz/ * 你可以免费使用该软件,未经许可请勿作用于任何商业目的,如有技术问题请与本人联系! */package biz.tbuy.common;import biz.tbuy.common.bean.BaseBean;import biz.tbuy.user.*;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.Map;import javax.faces.context.ExternalContext;import javax.faces.context.FacesContext;import javax.servlet.http.HttpServletRequest;/** * @author huliqing * <p><b>qq:</b>31703299 * <p><b>E-mail:</b><a href="mailto:huliqing.cn@gmail.com">huliqing.cn@gmail.com</a> * <p><b>Homepage:</b><a href="http://www.tbuy.biz/">http://www.tbuy.biz/</a> */public class Visitor extends BaseBean{ private UserModel _user; // 登录用户的信息,如id,password private boolean _login; // 用于标识用户是否已经登录主站 private boolean _hidden; // 是否隐身的 private boolean _news; // 是否有新的短讯, private String _ip; // 用户的ip private String _firstTime; // 用户刚开始访问时的时间 private long _lastVisitTime;// 用户的最后一次访问页面的System.currentTimeMillis() /** * 控制并管理用户的其他系统的sessin信息,如BBSSession、WebSession * 以便于以后添加其他模块 */ private Map<String, Object> _sessionOper; /** Creates a new instance of Visitor */ public Visitor() { // 获取IP FacesContext fc = FacesContext.getCurrentInstance(); ExternalContext ec = fc.getExternalContext(); HttpServletRequest hsr = (HttpServletRequest) ec.getRequest(); _ip = hsr.getRemoteAddr(); // 初始化访问者的首次访问时间 _lastVisitTime = System.currentTimeMillis(); // 记录访问者 Date nowTime = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); _firstTime = sdf.format(nowTime); } /** * 返回该visitor的标识 */ public String getVisitorKey() { return _ip; } /** * 设置当前的访问用户的信息. * @param user 当前用户的主站信息 */ public void setUser(UserModel user) { _user = user; } /** * 获取当前用户的用户信息,UserModel,包含id,password,group(主站) * 如果该user不存在,则创建之 * @return user */ public UserModel getUser() { if (_user == null) { _user = new UserModel(); } return _user; } /** * 设置用户的主站登录状态 * @param login true表示已经登录主站,false为未登录 */ public void setLogin(boolean login) { _login = login; } /** * 判断用户是否已经登录主站 * @return true 如果用户已经登录主站,否则返回false */ public boolean isLogin() { return _login; } /** * 设置用户的隐身状态 * @param hidden 如果设为true,则表示用户隐身中,否则为现身 */ public void setHidden(boolean hidden) { _hidden = hidden; } /** * 判断用户是否正处于隐身登录状态, * @return true 隐身;false 现身 */ public boolean isHidden() { return _hidden; } /** * 设置用户的当前短讯情况,如果设为true,表示当前用户有新的短讯件 * 如果设为false,则表示用户无短讯件,这样不用每次刷新页面都访问数据库以获取短讯 * 情况 * @param news true/false */ public void setNews(boolean news) { _news = news; } /** * 检查用户是否有新的短息讯,如果用户当前有短讯则true,否则false * @return news */ public boolean isNews() { return _news; } /** * 获取用户的当前IP信息 * @return ip */ public String getIp() { return _ip; } /** * 获取用户首次访问时的时间 */ public String getFirstTime() { return _firstTime; } /** * 设置用户的最后一次访问页面的时间,用户访问每一个页面时更新, * 以让系统知道该用户仍然在线活动,主要用于在线用户列表的监测 * @param lastVisitTime long型数据 - System.currentTimeMillis() */ public void setLastVisitTime(long lastVisitTime) { _lastVisitTime = lastVisitTime; } /** * 获取用户最后一次访问页面时的System.currentTimeMillis()时间 * @return lastVisitTime; */ public long getLastVisitTime() { return _lastVisitTime; } /** * 设置用于控制其他系统Session信息的sessionOper控制器 * @param sessionOper Map类型 */ public void setSessionOper(Map<String, Object> sessionOper) { _sessionOper = sessionOper; } /** * 获取管理其他系统的sessionOper控制器,如果不存在,则创建之<br> * 该sessionOper控制着其他系统的session:如<br> * getSessionOper().get("BBSSession"),用于获取管理BBSSession的信息<br> * @return sessionOper */ public Map getSessionOper() { if (_sessionOper == null) { _sessionOper = new HashMap<String, Object>(2); } return _sessionOper; } /** * 判断当前用户是否为管理员 * @return true 如果为管理员 否则false */ public boolean isAdmin() { return getComApplication().isAdmin(getUser().getId()); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -