`
indiasam
  • 浏览: 5748 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论
阅读更多

大家也许都了解,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的问题?

分享到:
评论
2 楼 liangguanhui 2008-12-18  
你可以用Opera上http://wap.mbook.cn,我觉得它的url重写不错,比较适用于手机。
1 楼 bohemia 2008-11-04  
手机应用,一定要用URL重写机制,所有的连接都要采用URL进行编码.

Response.URLEncode(url);

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

URL重写,Cookie太不靠谱..

相关推荐

    微信小程序获取手机号 (java解密及微信小程序获取openid、session_key)

    java解析的源码和小程序的源码,自己从项目中剥离出来的,肯定能用,有疑问私信,微信小程序获取各类信息(openid、session_key以及用户基本信息、解密手机号)

    iframe跨域与session失效问题的解决办法

    在探讨如何解决iframe跨域与session失效的问题之前,我们需要了解几个重要的概念:什么是跨域,什么是session以及cookie。 首先,跨域问题通常出现在Web应用中,尤其是在使用iframe嵌入第三方网站内容时。在Web技术...

    微信小程序用户登录、注册、SESSION同步、交互等

    - **SESSION存储**:SESSION通常存储在服务器端,避免跨域问题和数据安全性。 - **客户端同步**:将SESSION ID返回给微信小程序,小程序将其保存在本地,通常是缓存或者全局变量中。 - **后续请求携带SESSION**:...

    关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析

    然而,在特定情况下,开发者可能需要对这个默认的Session中间件进行扩展或修改,以适应不同的业务需求,比如在手机客户端和网页端使用同一套接口时,可能需要改变SessionID的获取方式。 首先,我们讨论Laravel ...

    php中session过期时间设置及session回收机制介绍

    默认情况下,`session.gc_probability`设为1,`session.gc_divisor`设为100,这意味着每100个请求中有1次会执行Session回收。在回收过程中,系统会检查`/tmp/sess_`目录下的文件,如果文件的最后修改时间距离当前...

    session的生命周期1

    - **无Cookie处理**:如果客户端浏览器禁用了`Cookie`或者不支持`Cookie`(如某些手机浏览器),服务器会采用URL重写的方式。这意味着服务器会将`Session ID`附加到URL路径后面,使得即使没有`Cookie`,服务器也能...

    拿别人Session欺骗 好了的站1

    标题中的“拿别人Session欺骗 好了的站1”是指一种网络安全攻击方式,即Session欺骗,也称为会话劫持。在这种攻击中,攻击者通过获取他人的Session信息,来伪装成合法用户,从而控制其账户。描述简单地提到了这种...

    Cookie与Session机制.doc

    如果浏览器不支持 Cookie(如大部分手机中的浏览器)或者把 Cookie 禁用了,Cookie 功能就会失效。不同的浏览器采用不同的方式保存 Cookie。 5. COOKIE 的应用 Cookie 可以用来记录用户访问次数。Java 中把 Cookie...

    laravel获取不到session的三种解决办法【推荐】

    问题:引用第三方类库时,使用全局函数session()可以保存session,但是获取不到 1、路由置于 web 中间件下,修改app/Http/Kernel.php文件,如下 protected $middlewareGroups = [ //中间件web 'web' => [ \App\...

    使用session实现用户登录.docx

    本教程将通过使用session来演示这一过程,这涉及到多个步骤和技术,包括前端页面、后端逻辑以及数据库交互。 首先,我们从14.3章节的描述开始,这里提到了`/client/index.html`和`/client/register.html`,这两个...

    【HC 2019 Session】可信的软件,产业互联网的基石.pdf

    随着互联网的兴起,软件开发演变为DevOps,即开发和运维的整合,强调将软件作为服务提供给用户,例如通过浏览器或智能手机直接使用。 产业互联网的崛起,使得车联网(V2X)等成为关注焦点。车联网不仅是技术上的...

    jeesite手机登陆BUG解决

    这可能是由于登录状态管理、会话(Session)处理或页面缓存等方面的问题导致的。 首先,我们要了解登录流程。当用户输入账号密码并提交后,服务器验证成功会创建一个Session,并将用户的登录信息存储在Session中。...

    服务端(C#)获取小程序(微信、字节跳动)手机号

    从返回的 JSON 数据中解析出 `session_key`,这将是解密手机号所需的关键部分。 ##### 解密手机号 有了 `session_key` 后,接下来就是解密 `encryptedData` 以获取用户的手机号。 1. **解密过程**: - 将 `...

    shiro管理多登录入口配置,手机端登录与网页端登录

    在"shiro管理多登录入口配置,手机端登录与网页端登录"这个场景下,我们需要考虑如何为不同的登录入口(手机端和网页端)设置独立的验证流程。 首先,Shiro 的核心组件 Realm 负责与应用数据源交互,验证用户身份。...

    Java解密微信小程序手机号的方法

    Java解密微信小程序手机号的方法 本文主要介绍了Java解密微信小程序手机号的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 AES解密工具类 Java解密微信小程序手机号的方法主要通过创建AES解密工具类...

    2020 Mock Exam B - Afternoon Session (with Solutions).pdf

    在她的新工作期间,Pierce遇到了一些伦理问题和职业挑战,包括涉嫌严重的伦理违规行为,但最终被证明是清白的。 以下是从文件中提取的知识点: 1. CFA(特许金融分析师)认证 CFA认证是金融行业内认可度极高的专业...

    微信小程序获取手机号码解密算法PHP版本

    微信小程序的手机号码解密过程涉及到了微信开放平台提供的`wx.login`接口,通过这个接口获取到的`code`,然后通过服务器端调用微信API来换取`access_token`、`session_key`以及`encryptedData`和`iv`。其中,`...

    python获取微信小程序手机号并绑定遇到的坑

    组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,可以通过 bindgetphonenumber 事件回调获取到微信服务器返回的加密数据, 然后在第三方服务端结合 session_key 以及 app_id 进行解密获取手机号...

    获取手机短信验证码源码

    1. **验证码生成**:系统通过随机数生成器创建一个唯一的验证码,并将其与用户的手机号关联,通常存储在服务器的会话(session)或数据库中。 2. **短信发送**:生成的验证码通过短信网关发送到指定的手机号。这...

Global site tag (gtag.js) - Google Analytics