📄 useraccess.java
字号:
package com.yxq.monitor;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
import com.yxq.bean.SingleObject;
public class UserAccess implements HttpSessionBindingListener {
private String userID;
public String getUserID() {
return userID;
}
public void setUserID(String userID) {
this.userID = userID;
}
public void valueBound(HttpSessionBindingEvent event) {
System.out.println("用户:"+userID+" 于 "+new Date()+" 访问!");
HttpSession session=event.getSession();
ServletContext sc=session.getServletContext();
HashMap<String,Map> usermap=(HashMap)sc.getAttribute("usermap");
if(usermap==null)
usermap=new HashMap<String,Map>();
if(usermap.size()==0||(!usermap.containsKey(userID))){
usermap.put(userID,new HashMap()); //为当前用户分配一个购物车,并以当前用户的ID为键值将用户的购物车存储到购物车集合中
sc.setAttribute("usermap",usermap);
}
System.out.println("上线 — 目前有"+usermap.size()+"人在线!");
}
public void valueUnbound(HttpSessionBindingEvent event) {
System.out.println("用户:"+userID+" 于 "+new Date()+" 离开!");
HttpSession session=event.getSession();
ServletContext sc=session.getServletContext();
synchronized(sc){
Map havemap=(HashMap)sc.getAttribute("havemap");
if(userID!=null&&!userID.equals("")){
Map usermap=(HashMap)sc.getAttribute("usermap");
if(usermap!=null&&usermap.size()!=0){
if(usermap.containsKey(userID)){
Map carmap=(HashMap)usermap.get(userID);
if(carmap!=null&&carmap.size()!=0){
Set keys=carmap.keySet();
Iterator it=keys.iterator();
while(it.hasNext()){
Integer key=(Integer)it.next();
Integer buyN=((SingleObject)carmap.get(key)).getBuyN();
Integer haveN=(Integer)havemap.get(key);
havemap.put(key,haveN+buyN);
}
}
sc.setAttribute("havemap",havemap);
usermap.remove(userID);
System.out.println("下线 — 目前有"+usermap.size()+"人在线!");
}
}
}
}//synchronized
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -