操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    項目要求同一個賬戶只能在一處登錄,如果同時登陸了就把前一個登錄的踢掉。

    1.首先在你的中定義兩個參數

    // 用戶和Session綁定關系
    	public static final Map USR_SESSION = new HashMap();
    	// SessionId和用戶的綁定關系
    	public static final Map SESSIONID_USR = new HashMap();

    因為用戶登錄成功后,用戶的數據是放在中保管的,所以要保存與用戶的關系及與用戶的關系。

    當用戶登錄后,我們要把用戶數據放到之前檢查一下當前用戶是否登錄 ps:這步是實現踢掉用戶的關鍵

    2.檢查當前用戶是否登錄

    /**
    	 * 
    	 * 用戶登錄時的處理
    	 * 
    	 * @param request
    	 * 
    	 */
    	public static void userLoginHandle(HttpServletRequest request) {
    		// 當前登錄的用戶
    		String userName = request.getParameter("userName");
    		// 當前sessionId
    		String sessionId = request.getSession().getId();
    		// 刪除當前sessionId綁定的用戶,用戶--HttpSession
    		USR_SESSION.remove(SESSIONID_USR.remove(sessionId));
    		// 刪除當前登錄用戶綁定的HttpSession
    		HttpSession session = USR_SESSION.remove(userName);
    		if (session != null) {
    			SESSIONID_USR.remove(session.getId());
    			session.setAttribute("msg", "您的賬號已經在另一處登錄了,您被迫下線!");
    		}
    	}

    如果用戶已登錄,則將用戶與及與用戶關系的兩個參數中相關數據通過key的形式清掉,并且向這個發送消息。

    3.前臺頁面接收消息

    由于jsp中獲取不能實時更新java踢出已登錄用戶,所以我們需要寫個定時js方法,不斷去獲取的數據

    在頁面標簽添加事件綁定方法

    function checkUserOnline(){
    	$.ajax({
            type:"POST",
            url:"/gangcheng/login/checkUserOnline",
            data:{},
            success: function(data){
            	msg = data;
            }
        });
    	
    	 if(msg=='null'||msg==''|| msg == 'undefined'){
             return;
          }else{
             alert(msg);
        	 提示完信息后,調用你的注銷用戶方法
          }
    }
    function checkLogin(){
    	 check = setInterval("checkUserOnline()",500);
    }

    調用的后臺方法如下

    /**
    	 * 判斷用戶是否同時登陸同一個用戶
    	 * 
    	 * */
    	@RequestMapping(value="/checkUserOnline")
    	@ResponseBody
    	public void checkUserOnline(HttpServletRequest request,HttpServletResponse response) throws IOException{
    		HttpSession session=request.getSession();
            PrintWriter out = response.getWriter();
            out.print(session.getAttribute("msg"));
    	}

    因為我們登錄用戶的時候做了第二步的操作,所以這邊我們調用后臺的時候可以取到中msg的數據,如果有msg則你被別人頂掉了。需要重新登錄。

    到這里如果沒有看懂的話,建議你跟著我的步驟java踢出已登錄用戶,一步一步copy,完事之后再去自己理解,這個方法有一個缺陷的地方就是同一個瀏覽器,是一樣的,就會只能記錄一個最近登錄的用戶,前面你登錄過的用戶就不會再被頂掉了,一般項目是不會有同一個人同時登陸兩個用戶的情況。如果會有這種情況,那么這種方法不適合你,你需要自己再改動改動

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有