1 很清楚的明白session的原理
2 java selvert 根据sessionId获取session的方法被干掉了(出于安全考虑),php还是可以的
关键在客户端保存表示唯一session的 session id 这个id 浏览器存在cookie 中,java 界 key=JSESSIONID
3 看 selvert 相关源码,selvert 会在cookie中获取JSEESONID 再返回Session 默认没有是新创建一个session
简单方案:android客户端保存JSESSIONID 每次http请求cookie中带上JSESSIONID
基于 android query 的例子
public class CookieAjaxCallback<T> extends AjaxCallback<T>{ public CookieAjaxCallback(){ this.cookie(MResource.JsonResult.Key.JSESSIONID,‘保存的JSESSIONID’); } }
public class MResource { public static final class JsonResult{ public static final class Key{ public static final String Code="code"; public static final String Msg="msg"; public static final String JSESSIONID="JSESSIONID"; } public static final class Value{ public static final int Code_Error=-1; public static final int Code_OK=0; } } }
<pre name="code" class="java"><pre name="code" class="java"> aq.progress(dialog).ajax(“url”,params,JSONObject.class,new CookieAjaxCallback<JSONObject>()
session 列表都是由容器维护,如jetty 等
2 复杂点的方式
可以自己实现接管jetty的session
还有些通过 redis 数据库 等方式维护session列表