会是什么原因导致session丢失原因

切换浏览器内核是否会导致session丢失,如何解决这个问题? - ITeye问答
切换浏览器内核是否会导致session丢失,如何解决这个问题?
问题补充:但是,像CSDN或者校内网这些网站在切换内核的时候为啥没有发生丢失session的事情?他们是如何解决的呢?hudingchen 写道不同的浏览器,session肯定不同,如果用cookie保存也是有问题,每个浏览器cookie保存方式不同,觉得这个问题不需要处理,用户切换浏览器,那么就认为它是新的操作,session丢失是正确的。
问题补充:您这个是从网上抄的吧,而且我也不是你说的那个问题。高级java工程师 写道session丢失问题的解决
当采用window.open() 打开新的窗口时,经常会出现session丢失的问题,在使用Frame或者iFrame会使客户端不能写cookie,而Session是基于cookie的,所以使用Frame或者iFrame的页面也就不能保持Session. 使用IE内核的浏览器基本上都会存在这个问题;目前使用的是J2EE处理session,看大家的情况,PHP,ASP 都同样存在这样的问题;不排除与客户段的情况存在关系。但不确定到底什么原因引起的。我觉得可能是:
1。客户端打开窗口等程序引起;
2。Cookie使用4K限制存在的问题;
3。客户端浏览器使用某些插件,或者某些特殊设置(如采用新的进程打开窗口MAXTHON等)导致该问题出现;
4。最近IE7也经常出现该问题;
当然,对于Session机制本身是无可厚非的。但各种客户端的条件是难以控制的;不知道这个问题什么时候才能得到解决;现在的Web应用,月来越难了。 标准不统一;客户端情况复杂;
一开始分析,可能是页面有缓存的问题。所以先使用语句使页面不再有缓存:
&meta http-equiv="Content-Type" content="text/ charset=utf-8"&
&meta http-equiv="pragma" content="no-cache"&
&meta http-equiv="Cache-Control" content="no-cache, must-revalidate"&
&meta http-equiv="expires" content="0"&
但是问题依旧。在网上查询到一种方法,采用window.open()方法的name参数,同样可以保证只弹出一个页面,然后在这个弹出页面进行操作。
关于Window.open的参数小结(参书改编) 先看一个例子:
[javascipt:]window.open("Webpage.asp?",Derek,"height=100,width=100,status=yes,toolbar=yes,
menubar=no,location=no");
此语句打开一个新窗口,页面为webpage.asp,参数为var,名字为Derek,高为100,宽为100,显示状态栏和工具条,不显示菜单和地址。
具体总结的各个属性参数如下:
window = object.open([URL ][, name ][, features ][, replace]]]])
URL:新窗口的URL地址
name:新窗口的名称,可以为空
featurse:属性控制字符串,在此控制窗口的各种属性,属性之间以逗号隔开。
fullscreen= { yes/no/1/0 } 是否全屏,默认no
channelmode= { yes/no/1/0 } 是否显示频道栏,默认no
toolbar= { yes/no/1/0 } 是否显示工具条,默认no
location= { yes/no/1/0 } 是否显示地址栏,默认no
directories = { yes/no/1/0 } 是否显示转向按钮,默认no
status= { yes/no/1/0 } 是否显示窗口状态条,默认no
menubar= { yes/no/1/0 } 是否显示菜单,默认no se
scrollbars= { yes/no/1/0 } 是否显示滚动条,默认yes
resizable= { yes/no/1/0 } 是否窗口可调整大小,默认no
width=number 窗口宽度(像素单位)
height=number 窗口高度(像素单位)
top=number 窗口离屏幕顶部距离(像素单位)
left=number 窗口离屏幕左边距离(像素单位)
其中name参数用来在以后使用的html链接的target属性时引用这个窗口(用来在以后使用的html链接的target属性时引用这个窗口,在弹出页面使用&base target="name"&)之外,还可以是以下参数
_blank 表示新开一个窗口,_parent表示父框架窗口,_self表示覆盖该窗口,xxx表示覆盖名字为xxx的窗口(每个窗口都可以给他命名)
采纳的答案
不同的浏览器,session肯定不同,如果用cookie保存也是有问题,每个浏览器cookie保存方式不同,觉得这个问题不需要处理,用户切换浏览器,那么就认为它是新的操作,session丢失是正确的。
1.session丢失问题的解决&
2. 当采用window.open() 打开新的窗口时,经常会出现session丢失的问题,在使用Frame或者iFrame会使客户端不能写cookie,而Session是基于cookie的,所以使用Frame或者iFrame的页面也就不能保持Session. 使用IE内核的浏览器基本上都会存在这个问题;目前使用的是J2EE处理session,看大家的情况,PHP,ASP 都同样存在这样的问题;不排除与客户段的情况存在关系。但不确定到底什么原因引起的。我觉得可能是:&&
3.1。客户端打开窗口等程序引起;&&
4.2。Cookie使用4K限制存在的问题;&&
5.3。客户端浏览器使用某些插件,或者某些特殊设置(如采用新的进程打开窗口MAXTHON等)导致该问题出现;&&
6.4。最近IE7也经常出现该问题;&&
7.当然,对于Session机制本身是无可厚非的。但各种客户端的条件是难以控制的;不知道这个问题什么时候才能得到解决;现在的Web应用,月来越难了。 标准不统一;客户端情况复杂;&&
8.一开始分析,可能是页面有缓存的问题。所以先使用语句使页面不再有缓存:&
9.&meta http-equiv="Content-Type" content="text/ charset=utf-8"&&
10.&meta http-equiv="pragma" content="no-cache"&&
11.&meta http-equiv="Cache-Control" content="no-cache, must-revalidate"&&
12.&meta http-equiv="expires" content="0"&&
13.但是问题依旧。在网上查询到一种方法,采用window.open()方法的name参数,同样可以保证只弹出一个页面,然后在这个弹出页面进行操作。&
14.关于Window.open的参数小结(参书改编) 先看一个例子:&&
15.[javascipt:]window.open("Webpage.asp?",Derek,"height=100,width=100,status=yes,toolbar=yes,&&
16.menubar=no,location=no");&&
17.此语句打开一个新窗口,页面为webpage.asp,参数为var,名字为Derek,高为100,宽为100,显示状态栏和工具条,不显示菜单和地址。&&
18.具体总结的各个属性参数如下:&&
19.window = object.open([URL ][, name ][, features ][, replace]]]])&&
20.URL:新窗口的URL地址&&
21.name:新窗口的名称,可以为空&&
22.featurse:属性控制字符串,在此控制窗口的各种属性,属性之间以逗号隔开。&&
23.fullscreen= { yes/no/1/0 } 是否全屏,默认no&&
24.channelmode= { yes/no/1/0 } 是否显示频道栏,默认no&&
25.toolbar= { yes/no/1/0 } 是否显示工具条,默认no&&
26.location= { yes/no/1/0 } 是否显示地址栏,默认no&&
27.directories = { yes/no/1/0 } 是否显示转向按钮,默认no&&
28.status= { yes/no/1/0 } 是否显示窗口状态条,默认no&&
29.menubar= { yes/no/1/0 } 是否显示菜单,默认no se&
30.scrollbars= { yes/no/1/0 } 是否显示滚动条,默认yes&&
31.resizable= { yes/no/1/0 } 是否窗口可调整大小,默认no&&
32.width=number 窗口宽度(像素单位)&&
33.height=number 窗口高度(像素单位)&&
34.top=number 窗口离屏幕顶部距离(像素单位)&&
35.left=number 窗口离屏幕左边距离(像素单位)&&
36.其中name参数用来在以后使用的html链接的target属性时引用这个窗口(用来在以后使用的html链接的target属性时引用这个窗口,在弹出页面使用&base target="name"&)之外,还可以是以下参数&
37._blank 表示新开一个窗口,_parent表示父框架窗口,_self表示覆盖该窗口,xxx表示覆盖名字为xxx的窗口(每个窗口都可以给他命名)&&&&&&
session id是存在cookie里的,如果切换浏览器,cookie消失的话,那么丢session是必然的
你说那种情况可能用cookie保存的,如果你切换的两个浏览器cookie保存方式相同,是可以保存session的,但是你不能保证每个用户使用的浏览器的cookie相同,而且一些用户浏览器是禁用cookie的,你是无法控制的。
信息放在cookie中,读取cookie试试。
session丢失问题的解决
当采用window.open() 打开新的窗口时,经常会出现session丢失的问题,在使用Frame或者iFrame会使客户端不能写cookie,而Session是基于cookie的,所以使用Frame或者iFrame的页面也就不能保持Session. 使用IE内核的浏览器基本上都会存在这个问题;目前使用的是J2EE处理session,看大家的情况,PHP,ASP 都同样存在这样的问题;不排除与客户段的情况存在关系。但不确定到底什么原因引起的。我觉得可能是:
1。客户端打开窗口等程序引起;
2。Cookie使用4K限制存在的问题;
3。客户端浏览器使用某些插件,或者某些特殊设置(如采用新的进程打开窗口MAXTHON等)导致该问题出现;
4。最近IE7也经常出现该问题;
当然,对于Session机制本身是无可厚非的。但各种客户端的条件是难以控制的;不知道这个问题什么时候才能得到解决;现在的Web应用,月来越难了。 标准不统一;客户端情况复杂;
一开始分析,可能是页面有缓存的问题。所以先使用语句使页面不再有缓存:
&meta http-equiv="Content-Type" content="text/ charset=utf-8"&
&meta http-equiv="pragma" content="no-cache"&
&meta http-equiv="Cache-Control" content="no-cache, must-revalidate"&
&meta http-equiv="expires" content="0"&
但是问题依旧。在网上查询到一种方法,采用window.open()方法的name参数,同样可以保证只弹出一个页面,然后在这个弹出页面进行操作。
关于Window.open的参数小结(参书改编) 先看一个例子:
[javascipt:]window.open("Webpage.asp?",Derek,"height=100,width=100,status=yes,toolbar=yes,
menubar=no,location=no");
此语句打开一个新窗口,页面为webpage.asp,参数为var,名字为Derek,高为100,宽为100,显示状态栏和工具条,不显示菜单和地址。
具体总结的各个属性参数如下:
window = object.open([URL ][, name ][, features ][, replace]]]])
URL:新窗口的URL地址
name:新窗口的名称,可以为空
featurse:属性控制字符串,在此控制窗口的各种属性,属性之间以逗号隔开。
fullscreen= { yes/no/1/0 } 是否全屏,默认no
channelmode= { yes/no/1/0 } 是否显示频道栏,默认no
toolbar= { yes/no/1/0 } 是否显示工具条,默认no
location= { yes/no/1/0 } 是否显示地址栏,默认no
directories = { yes/no/1/0 } 是否显示转向按钮,默认no
status= { yes/no/1/0 } 是否显示窗口状态条,默认no
menubar= { yes/no/1/0 } 是否显示菜单,默认no se
scrollbars= { yes/no/1/0 } 是否显示滚动条,默认yes
resizable= { yes/no/1/0 } 是否窗口可调整大小,默认no
width=number 窗口宽度(像素单位)
height=number 窗口高度(像素单位)
top=number 窗口离屏幕顶部距离(像素单位)
left=number 窗口离屏幕左边距离(像素单位)
其中name参数用来在以后使用的html链接的target属性时引用这个窗口(用来在以后使用的html链接的target属性时引用这个窗口,在弹出页面使用&base target="name"&)之外,还可以是以下参数
_blank 表示新开一个窗口,_parent表示父框架窗口,_self表示覆盖该窗口,xxx表示覆盖名字为xxx的窗口(每个窗口都可以给他命名)
已解决问题
未解决问题session与cookie的区别是什么,请从协议,产生的原因与作用上说明? | 时鹏亮的blog会是什么原因导致session_百度知道
会是什么原因导致session
我有更好的答案
ession对象:session对象主要用于保存用户的各种信息,所以只有唯一的一个http包下有此接口,知道它的生命周期(一般是900S)超时或者被人为释放为止 可以通过session对象来判断此用户是否是合法用户 在服务器上通过session来区分每一个上网用户 session对象属于javax.servlet.http.HttpSession接口的实例化对象 session属于HTTP协议范畴之内的对象
采纳率:85%
来自团队:
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。小知识:什么是“用户会话(User Session)”_互联网-国内_科技时代_新浪网
您还可以通过
浏览新浪网新闻
小知识:什么是“用户会话(User Session)”
http://www.sina.com.cn &11:48 新浪科技
  定义:用户会话是指具有唯一访问者标识(唯一地址)的访问者进入或再次进入网站的过程。
  度量方法:访问者在20分钟内与网站有交互活动则被认为是同一次进入网站,不记录新的用户会话数;当访问者持
续20分钟与网站没有交互活动,当他再次访问网站时访问者被认为再一次进入了网站,记录新的用户会话数。
  评论:用户进出数、访问数(Visit)和用户会话是同一术语。用户会话不应该被解释为网站的访问人次或访问
人数,但是用户会话是相对接近网站访问人次或访问人数的指标。网站的精确的访问人次或访问人数难于被统计。用户会话比
唯一访问者更能说明网站的全部活动,它表明了网站的使用频率。
【】【】【】
 相关链接( 10:14)( 14:42)( 12:47)( 12:46)( 12:47)( 12:46)( 12:44)( 12:39)专题
 新浪推荐:定制您关心的新闻,请来。
Copyright & 1996 - 2001 SINA.com, Stone Rich Sight. All Rights Reserved 四通利方 新浪网第二种获得session的方式一般在什么情况下会用到?
感觉能用第二种方式的时候也可以用openSeesion呀,getCurrentSession就感觉没什么用了
6666~非常详细~感谢!
写下你的评论...
写下你的评论...
写下你的评论...
Copyright (C) 2018 imooc.com All Rights Reserved | 京ICP备 号-11

我要回帖

更多关于 session 丢失的原因 的文章

 

随机推荐