论坛首页 移动开发技术论坛

手机session问题

浏览 3587 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-11-04  

大家也许都了解,tomcat为了维持和浏览器之间的session对应关系,主要采用三种方式:
1.cookie纪录sessionId;
2.url重写;
3.隐藏表单,这个几乎和url重写意义相同;

      有些手机浏览器保持cookie,有些不支持,支持cookie的每次请求发送的sessionid还会不同,这样就无法维护session。
      为了这个,我为每个链接的后面就加上了sessionid,这样居然还是不行,后来我查看了许多tomcat相关的文档,在配置文件的context中有个cookies选项,如果配置为false,则不信任浏览器的cookie,只信任url后面的jsessionid,但是公司的服务很大很杂,如果我更改了这个选项,怕影响到其它服务,最妥协的办法就是让tomcat先选择url后面的sessionid,如果没有再去cookie中去找,但是我没有发现这样的配置选项;
      查看tomcat的源代码,发现CoyoteAdapter类中对于sessionid的处理是这样的,显示运行parseSessionId(req, request),这个方法是在url中获取sessionid作为requestedSessionId,在同一方法的最后运行parseSessionCookiesId(req, request),这个方法负责在cookie中获取sessionid,这个方法之前会判断,如果配置中禁止cookie,则不取cookie中的了,也就是说无法优先选择url中的sessionid,只能选择或不选择cookie。

      不知道大家有没有好的办法解决cookie和session的问题?

   发表时间:2008-11-04  
手机应用,一定要用URL重写机制,所有的连接都要采用URL进行编码.

Response.URLEncode(url);

这个是接口,至于Tomcat或者其他应用服务器支持,则看情况了.
我在WLS8上用的还行;

URL重写,Cookie太不靠谱..
0 请登录后投票
   发表时间:2008-12-18  
你可以用Opera上http://wap.mbook.cn,我觉得它的url重写不错,比较适用于手机。
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics