java – 从Android访问servlet时维护HTTP会话

当我从Android访问servlet时,我无法维护会话.我只是将参数和URL一起传递给servlet,servlet从数据库中收集数据并将其存储在会话中,但我无法在后续请求中检索它.

当我关闭servlet中的PrintWriter时,会话是否会过期?

最佳答案
这是客户端的问题. HTTP会话由cookie维护.客户端需要确保根据HTTP规范正确地将cookie发送回后续请求. HttpClient API为此提供了CookieStore类,您需要在HttpContext中设置该类,而您需要在每次HttpClient#execute()调用时传递该类.

HttpClient httpClient = new DefaultHttpClient();
CookieStore cookieStore = new BasicCookieStore();
HttpContext httpContext = new BasicHttpContext();
httpContext.setAttribute(ClientContext.COOKIE_STORE,cookieStore);
// ...

HttpResponse response1 = httpClient.execute(yourMethod1,httpContext);
// ...

HttpResponse response2 = httpClient.execute(yourMethod2,httpContext);
// ...

要了解有关会话如何工作的更多信息,请阅读以下答案:How do servlets work? Instantiation,sessions,shared variables and multithreading

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...