app⽤户登录状态保持的⼀个简单⽅法
最近在做查药专家的⼀款app,⽤户登录状态保持采⽤了session的⽅法.
使⽤session的话
1.客户端访问需要开启cookie策略.
或者
2.采⽤以下的⽅法
类似于token.⽤户登录后把登录时的sessionId获取到下发给⽤户.⽤户信息保持在这个session中.
每次访问携带sessionId.到对应的session 判断⽤户是否登录状态.
下⾯是根据sessionId得到session的⽅法:
Servlet2.1之后不⽀持SessionContext⾥⾯getSession(String id)⽅法。
但是,我们可以通过HttpSessionListener和全局静态map⾃⼰实现⼀个SessionContext。
public class MySessionContext {
private static HashMap mymap = new HashMap();
public static synchronized void AddSession(HttpSession session) {
if (session != null) {
mymap.Id(), session);
}
}web端登录
public static synchronized void DelSession(HttpSession session) {
if (session != null) {
}
}
public static synchronized HttpSession getSession(String session_id) {
if (session_id == null)
return null;
return (HttpSession) (session_id);
}
}
public class MySessionListener implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent httpSessionEvent) {
MySessionContext.Session());
}
public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
HttpSession session = Session();
MySessionContext.DelSession(session);
}
}
<listener>
<listener-class>listener.MySessionListener</listener-class>
</listener>
根据sessionId获取Session对象:
String sessionId = Parameter("sessionId"); HttpSession session = Session(sessionId);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论