zoukankan      html  css  js  c++  java
  • 17_7_31 登录页面统一账户不同地点被挤下

    Self_Code:

    model层:

    package users;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import javax.servlet.http.HttpSession;
    
    public class UserStore {
    	//用map放String--Session中的username; HttSeesion放 session,session中set的name=U和User
    	public static Map<String, HttpSession> loginUser = new HashMap<String, HttpSession>();
    	public final static Map<String, User> USS = new HashMap<String, User>();
    }
    
    

    linstener中:

    
    package filter;
    
    import javax.servlet.annotation.WebListener;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpSessionAttributeListener;
    import javax.servlet.http.HttpSessionBindingEvent;
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;
    import users.User;
    import users.UserStore;
    
    @WebListener
    
    public class SessionLinstener implements HttpSessionListener, HttpSessionAttributeListener {
    
    	public static String SESSION_LOGIN_NAME = "U";
    
    	public void attributeAdded(HttpSessionBindingEvent se) {
    		if (se.getName().equals(SESSION_LOGIN_NAME)) {
    			User u = (User) se.getValue();
    			HttpSession session = UserStore.loginUser.remove(u.getUsername());
    			UserStore.loginUser.put(u.getUsername(), se.getSession());
    			if (session != null) {
    				session.removeAttribute("U");
    			}
    		}
    	}
    
    	public void sessionDestroyed(HttpSessionEvent se) {
    		User u = (User) se.getSession().getAttribute("U");
    		UserStore.loginUser.remove(u.getUsername());
    
    	}
    }
    
  • 相关阅读:
    Kotlin基本语法笔记3之定义类、继承及创建实例
    Kotlin基本语法笔记2之类型检测及自动类型转换、循环
    Kotlin基本语法笔记之函数、变量的定义及null检测
    C++笔记之外部类访问内部类的私有成员
    正则表达式之不区分大小写的匹配
    springMVC之helloworld
    数组学习
    反射reflect
    JSP学习
    自己做的菜
  • 原文地址:https://www.cnblogs.com/du1991/p/7264322.html
Copyright © 2011-2022 走看看