WEB系统 记录当前用户个数,当前访问系统的用户名
2013-03-25 15:31
351 查看
这个文件用来记录用户 用户在线个数 以及用户名密码
package com.yc.ycportal.userutil;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* @author heli
*
*/
public class OnlineUser {
private static long online = 0;
private static Map userNameMap = new HashMap();// 目前只提供在线用户中文名字
// 以后如果有需求可以考虑扩充
private static Log log = LogFactory.getLog(OnlineUser.class);
public static long getOnline() {
return online;
}
public static boolean userOnline(String memEName, String memCName) {
log.debug("创建用户Session");
try {
log.debug("用户名为:" + memEName);
log.debug("userNameMap" + userNameMap);
if (userNameMap.containsKey(memEName)) {
log.debug("用户重复登陆");
return false;
} else {
userNameMap.put(memEName, memCName);
return true;
}
} catch (Exception e) {
log.error("将用户信息放入userNameMap失败,信息如下:" + e.getMessage());
}
log.debug("userNameMap" + userNameMap);
return false;
}
public static void raise() {
online++;
log.debug("当前在线用户个数" + online);
}
public static void reduce() {
online--;
log.debug("当前在线用户个数" + online);
}
public static void userOffline(String memEName) {
// TODO 自动生成方法存根
log.debug("清除用户信息");
try {
log.debug("用户注销 用户名为:" + memEName);
userNameMap.remove(memEName);
} catch (Exception e) {
log.error("清除用户信息失败:" + e.getMessage());
}
}
public static void main(String arge[]) {
System.out.println("+++++++++++++++==");
Map map = new HashMap();
map.put("1", "a");
map.put("2", "b");
map.put("3", "c");
map.put("4", "d");
map.put("5", "e");
Set set = map.keySet();
Iterator ito = set.iterator();
while (ito.hasNext())
System.out.println(ito.next());
}
/**
* @return userNameMap
*/
public static Map getUserNameMap() {
return userNameMap;
}
/**
* @param userNameMap
* 要设置的 userNameMap
*/
public static void setUserNameMap(Map userNameMap) {
OnlineUser.userNameMap = userNameMap;
}
}
这个用户用来实现对用户登陆,注销,以及session 过期用户的处理
package com.yc.ycportal.userutil;
/**
* @author heli
*
*/
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.yc.ycportal.user.User;
import com.yc.ycportal.util.Constants;
public class OnlineUserListener implements HttpSessionListener {
private static Log log = LogFactory.getLog(OnlineUserListener.class);
public void sessionCreated(HttpSessionEvent hse) {
OnlineUser.raise();
}
public void sessionDestroyed(HttpSessionEvent hse) {
User user = (User) hse.getSession().getAttribute(Constants.LONGIN_USER);
if (user == null)
log.debug("捕获用户session注销操作,该用户为未登陆用户!");
else {
try {
OnlineUser.userOffline(user.getMember().getMemname());
} catch (Exception e) {
log.error("清除在线用户信息时,捕获用户名出错,错误信息如下:" + e.getMessage());
}
}
OnlineUser.reduce();
}
}
为了完成整个功能还需要 在用户登陆的时候调用userOnline(String memEName, String memCName)
用户注销的时候调用 public static void userOffline(String memEName) 以及session.invalidate()方法
package com.yc.ycportal.userutil;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* @author heli
*
*/
public class OnlineUser {
private static long online = 0;
private static Map userNameMap = new HashMap();// 目前只提供在线用户中文名字
// 以后如果有需求可以考虑扩充
private static Log log = LogFactory.getLog(OnlineUser.class);
public static long getOnline() {
return online;
}
public static boolean userOnline(String memEName, String memCName) {
log.debug("创建用户Session");
try {
log.debug("用户名为:" + memEName);
log.debug("userNameMap" + userNameMap);
if (userNameMap.containsKey(memEName)) {
log.debug("用户重复登陆");
return false;
} else {
userNameMap.put(memEName, memCName);
return true;
}
} catch (Exception e) {
log.error("将用户信息放入userNameMap失败,信息如下:" + e.getMessage());
}
log.debug("userNameMap" + userNameMap);
return false;
}
public static void raise() {
online++;
log.debug("当前在线用户个数" + online);
}
public static void reduce() {
online--;
log.debug("当前在线用户个数" + online);
}
public static void userOffline(String memEName) {
// TODO 自动生成方法存根
log.debug("清除用户信息");
try {
log.debug("用户注销 用户名为:" + memEName);
userNameMap.remove(memEName);
} catch (Exception e) {
log.error("清除用户信息失败:" + e.getMessage());
}
}
public static void main(String arge[]) {
System.out.println("+++++++++++++++==");
Map map = new HashMap();
map.put("1", "a");
map.put("2", "b");
map.put("3", "c");
map.put("4", "d");
map.put("5", "e");
Set set = map.keySet();
Iterator ito = set.iterator();
while (ito.hasNext())
System.out.println(ito.next());
}
/**
* @return userNameMap
*/
public static Map getUserNameMap() {
return userNameMap;
}
/**
* @param userNameMap
* 要设置的 userNameMap
*/
public static void setUserNameMap(Map userNameMap) {
OnlineUser.userNameMap = userNameMap;
}
}
这个用户用来实现对用户登陆,注销,以及session 过期用户的处理
package com.yc.ycportal.userutil;
/**
* @author heli
*
*/
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.yc.ycportal.user.User;
import com.yc.ycportal.util.Constants;
public class OnlineUserListener implements HttpSessionListener {
private static Log log = LogFactory.getLog(OnlineUserListener.class);
public void sessionCreated(HttpSessionEvent hse) {
OnlineUser.raise();
}
public void sessionDestroyed(HttpSessionEvent hse) {
User user = (User) hse.getSession().getAttribute(Constants.LONGIN_USER);
if (user == null)
log.debug("捕获用户session注销操作,该用户为未登陆用户!");
else {
try {
OnlineUser.userOffline(user.getMember().getMemname());
} catch (Exception e) {
log.error("清除在线用户信息时,捕获用户名出错,错误信息如下:" + e.getMessage());
}
}
OnlineUser.reduce();
}
}
为了完成整个功能还需要 在用户登陆的时候调用userOnline(String memEName, String memCName)
用户注销的时候调用 public static void userOffline(String memEName) 以及session.invalidate()方法
相关文章推荐
- WEB系统 记录当前用户个数,当前访问系统的用户名 2
- WEB系统 记录当前用户个数,当前访问系统的用户名
- WEB系统 记录当前用户个数,当前访问系统的用户名 2
- 判断来访问网站的用户是手机用户还是Web浏览器的用户【即判定用户当前使用的系统】
- WEB系统统计当前访问系统的用户
- cookies示例:记录用户当前第几次访问
- 怎么删除访问windows共享时,系统自动记录的用户名和密码
- Linux下查看/管理当前登录用户及用户操作历史记录
- JavaScript-BOM-history:保存当前窗口打开后成功访问过的url历史记录栈
- 获取系统当前的用户
- nginx 用户访问站点输入用户名密码验证
- cookie-jsp实现记录用户上次访问时间
- csrf攻击过程 csrf攻击说明 1.用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A; 2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站
- 获取访问系统用户IP
- oracle 插入记录,字段自动获取当前系统时间(YYYY-MM-DD HH24:MI:SS)
- 使用servletcontent记录当前登录用户信息
- Linux下查看/管理当前登录用户及用户操作历史记录
- [ASP.NET]怎样得到当前用户的用户名和IP地址
- 安装数据库提示"请确保当前用户具有访问临时文件的权限"解决方法
- struts2.0拦截器(实现未登录的用户不能访问系统的页面)(转)