从Android访问servlet时维护HTTP会话
当我从Android访问servlet时,我无法维护会话。 我只是将参数和URL一起传递给servlet,servlet从数据库中收集数据并将其存储在会话中,但我无法在后续请求中检索它。
当我在servlet中关闭PrintWriter
时,会话是否会过期?
这是客户端的问题。 HTTP会话由cookie维护。 客户端需要确保根据HTTP规范正确地将cookie发送回后续请求。 HttpClient API为此提供了CookieStore
类,您需要在HttpContext
中设置它,而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); // ...
要了解有关会话如何工作的更多信息,请阅读以下答案: servlet如何工作? 实例化,会话,共享变量和multithreading
- 使用Android支持库v7在Android Maven项目中的ActionBar
- Android – 扩展我的UI以适应所有屏幕尺寸?
- 无法解析符号“IPackageDeleteObserver”
- Android:getfromLocationName()在地址列表中返回大小0
- 定期从Android中的服务器获取数据(轮询)
- 如何在服务器上显示或使用从Android手机接收的图像
- 是否有可能从外部闪存驱动器运行java(jdk-windows),Eclipse(indigo)和Android-sdk for Android app开发
- setPolyToPoly未应用
- Android 2.2版本的SSL握手失败