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,例如: