`
name327
  • 浏览: 163086 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

https跳转到http session丢失问题

阅读更多

首先说下

 http>https>http

session是不会丢失的。

 

这个就是用户登录时候通过http访问了首页,或者页面,然后点击登录按钮,跳转到https协议下,输入完毕用户名密码等信息,登录录成功,在服务端session放入当前登录用户信息.

 

这种跳转方式不会出现session丢失情况。

 

 

这时候,如果用户没有访问你的http页面,而是直接通过https访问你的登录页面,这时候就是 

https>http

用户输入完用户名密码等信息,登录成功,在服务端session放入当前用户信息, 再跳转回http的页面, session就丢失了, 说丢失可能不严谨(其实session还在服务端保存,只是tomcat帮我们创建了新的session id导致我们的会话跟踪失效)

 

以上是问题的描述

 

下面说解决办法。 我的项目是ssh架构的, 其他语言或者架构触类旁通即可.

 

解决之前首先我们要明白 服务端跟踪客户端的会话是通过 浏览器每次提交的一个cookie表示  这个cookie的key是JSESSIONID,value是session的id,

浏览器请求时候就会带上这个,服务端就可以成功跟踪客户端了。

 

问题的解决原理说清楚了。 现在说说代码怎么写

这里就以我的项目为例了。

用户直接访问https的登录页面,我这里留给客户端的链接是要经过struts的action的。 在action中

 

HttpServletRequest request = ServletActionContext.getRequest();
        HttpServletResponse response=ServletActionContext.getResponse();
        Cookie cookie = new Cookie("JSESSIONID", request.getSession().getId());
        response.addCookie(cookie);
 

假如我们不这样写,tomcat会发给浏览器jsessionid是重新创建的,就会出现session丢失情况,这样写了之后再从https>http就不会有问题了。

上面如有不对, 欢迎批评指正!

分享到:
评论
4 楼 name327 2014-06-04  
小不点pom 写道
还是有问题

有什么问题啊
3 楼 小不点pom 2014-05-30  
还是有问题
2 楼 shikeying 2014-03-14  
嗯,不错,这个方法可以,在重定向时写入cookie,我用springsecurity可以了。不过还是不太理解,https响应写入的cookie在http时不是不能用么?
1 楼 gaowei52306 2013-02-02  
你好,我看了你相关的帖子,请问你说的https跳转到http是在后台处理完登录之后,再重定向到http的吗?

还有一个问题就是,你的那段Java代码需要加在哪里比较合适。貌似我添加了没有生效。我们项目没有使用struts。

麻烦有时间解答下我的疑问,谢谢!

相关推荐

    IFrame中Session丢失的解决办法

    IFrame中Session丢失的解决办法

    Session丢失原因和解决方案

    Session丢失原因和解决方案.Session原理

    session丢失解决方法

    asp.net 修改/删除站内目录操作后Session丢失问题

    完美解决ajax访问遇到Session失效的问题

    现在Ajax在Web项目中应用广泛,几乎可以说无处不在,这就带来另外一个问题:当Ajax请求遇到Session超时,应该怎么办? 显而易见,传统的页面跳转在此已经不适用,因为Ajax请求是XMLHTTPRequest对象发起的而不

    php页面跳转session cookie丢失导致不能登录等问题的解决方法

    thinkphp开发的一个项目,登录成功后又跳转到登录页面,在提交信息后输出session都是正常的,没有问题,但是页面跳转后,session出现丢失现象,无法正常完成登陆,下面通过本文给大家解答下

    C# SESSION丢失问题的解决办法

    我们在用C#开发程序的时候经常会遇到Session很不稳定,老是数据丢失。下面就是Session数据丢失的解决办法希望对您有好处。 1、在WEB.CONFIG文件中修改SESSION状态保存模式,如:<sessionState mode=’StateServer’ ...

    asp.net(c#)网页跳转七种方法小结

    ①response.redirect 这个跳转页面的...需要注意的是跳转后内部空间保存的所有数据信息将会丢失,所以需要用到session。 实例 Example that uses Redirect [C#; ASP.NET] 代码如下: using System; using System.Web.UI

    详解springmvc控制登录用户session失效后跳转登录页面

    本篇文章主要介绍了springmvc控制登录用户session失效后跳转登录页面,session一旦失效就需要重新登陆,有兴趣的同学可以了解一下。

    使用Ajax时处理用户session失效问题的解决方法

    在使用spingMVC的拦截器来处理用户session失效的问题时,当用户session失效会返回一串javascript字符串强制用户浏览器跳转至登录页面。然而当使用Ajax请求数据时,在验证失败后只会响应一串字符串,JavaScript并不会...

    三种asp.net页面跳转的方法

    第一种方法:response.redirect ...需要注意的是跳转后内部空间保存的所有数据信息将会丢失,所以需要用到session。 代码如下  using System; using System.Web.UI; namespace WebApplication1 { public p

    asp.net跳转页面的三种方法比较

    需要注意的是跳转后内部空间保存的所有数据信息将会丢失,所以需要用到session。 2、 server.transfer 速度快,只需要一次postback ,但是。。。。他必须是在同一个站点下,因为它是server的一个方法。另外,他能...

    node中的session的具体使用

    当用户在Web页面之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。 当用户请求来自应用程序的 Web 页面时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session ...

    关于Iframe如何跨域访问Cookie和Session的解决方法

    系统直接跳转到系统后台首页,后台登录成功后所跳转的URL这里没法指定,控制不了跳转的页面,如果在统一后台里需要链接到这个系统后台的另外一个页面,而非后台默认首页时,也就是将第三方系统后台的菜单功能放到...

    Django 5种类型Session使用方法解析

    这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。 当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一...

    php实现的SESSION类

    SESSION 在网络应用中,称为“会话”,我们通常理解为存储特定用户会话所需的信息,这样,当用户在网站页面之间跳转时,存储的 SESSION 值不会丢失,而是在整个用户会话中一直存活下去。通俗一点讲,就是当用户A上网...

    解决vue router组件状态刷新消失的问题

    场景:vue-router实现的单页应用,登录页调用登录接口后,服务器返回用户信息,然后通过router.push({name: 'index', params: res.data})跳转到主页,并在主页显示数据。但是当刷新页面时,由于并不是通过登录接口...

    StartBBS轻量开源社区 V1.0.3.zip

    3.修正ie浏览器丢失session的问题 4.增加用户注册后直接自动登录,改进用户体验 5.修复后台删贴后,不能跳转的问题 6.前台内容页增加贴子编辑功能 7.改进搜索安全过滤 8.登录页面增加登录状态判断 9.头像采用...

    zencart paypal 防漏单插件

    而今天给大家推荐的这款PayPal Session Viewer v3.02插件就可以读取到session里面的Paypal支付记录,并把客人下单购买的产品信息重新写入订单列表,也就是他能够通过查询session里面的信息,在后台重新生成遗漏的...

    图书管理系统 大二上学期的期末大作业。感觉是一个不错的Javaweb的练手项目hh。

    登录成功:用session来记录用户信息,跳转到学生个人菜单页面 登录失败:在本页面提示登录失败(用户名或密码错误) 然后就进入用户模块了 管理员登录页面: 登录信息:用户名、密码登录 使用正则表达式验证账号...

Global site tag (gtag.js) - Google Analytics