您的位置:首页 > 编程语言 > Java开发

java web判断是否登录

2015-10-07 20:08 399 查看
在使用session的情况下,如何判断是否已登录呢?

1,登录成功的后续操作

session.setAttribute(Constant2.SESSION_KEY_LOGINED_USER, user2);
session.setAttribute(Constant2.SESSION_KEY_LOGINED_FLAG, Constant2.FLAG_LOGIN_SUCCESS);//登录成功的标识有两个:"user",Constant2.SESSION_KEY_LOGINED_FLAG


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

Cookie:
JSESSIONID=F1D79A5CCB28B434F52D44B592F06CCE; bdshare_firstime=1438816569244; JSESSIONID=9F388DE5D0B1C2E86AB3BDC82B010673; cid=02c138ab6f1d5c9367ec7e2313979955
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: