java web判斷是否登錄

在使用session的情況下,如何判斷是否已登錄呢?

1,登錄成功的後續操作

1 session.setAttribute(Constant2.SESSION_KEY_LOGINED_USER, user2);
2             session.setAttribute(Constant2.SESSION_KEY_LOGINED_FLAG, Constant2.FLAG_LOGIN_SUCCESS);//登錄成功的標識有兩個:"user",Constant2.SESSION_KEY_LOGINED_FLAG
3             

 

2,註銷

session.removeAttribute(Constant2.SESSION_KEY_LOGINED_USER);
        session.removeAttribute(Constant2.SESSION_KEY_LOGINED_FLAG);

 

3,判斷是否已經登錄

/***
     * 判斷是否已登錄
     * @param user2
     * @return
     */
    public static boolean isLogined(User user2,String loginFlag){
        if(ValueWidget.isNullOrEmpty(user2)||ValueWidget.isNullOrEmpty(user2.getUsername())
                ||loginFlag == null
                        ||( !loginFlag.equalsIgnoreCase(Constant2.FLAG_LOGIN_SUCCESS))){
            return false;
        }else{
            return true;
        }
    }
    /***
     * 判斷是否已登錄
     * @param session
     * @return
     */
    public static boolean isLogined(HttpSession session){
        String loginFlag = (String) session
                .getAttribute(Constant2.SESSION_KEY_LOGINED_FLAG);
        User user2 = (User) session.getAttribute(Constant2.SESSION_KEY_LOGINED_USER);
        return isLogined(user2,loginFlag);
    }

調用:

if(!TVUtils.isLogined(session)){
            map.put(Constant2.LOGIN_RESULT_KEY, Constant2.MODIFY_PASS_RESULT_NOT_LOGINED_YET);//沒有登錄
            return HWJacksonUtils.getJsonP(map, callback);
        }

 

流程:

登錄成功之後,向session中寫入標識;

接收到請求時,判斷session中是否有標識,若有則表示已經登錄,否則需要登錄.

 

問題:

服務器接收到請求時,怎麼知道是哪個用戶呢?

通過瀏覽器的cookie,例如:

  1. Cookie:
    JSESSIONID=F1D79A5CCB28B434F52D44B592F06CCE; bdshare_firstime=1438816569244; JSESSIONID=9F388DE5D0B1C2E86AB3BDC82B010673; cid=02c138ab6f1d5c9367ec7e2313979955

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章