站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题[100分请教]关于弹出窗口的session

[100分请教]关于弹出窗口的session

摘要: [100分请教]关于弹出窗口的session


现实情况:
ie的window窗口A,拥有一个session,
窗口A弹出模式对话框B,B拥有同A一样的session。
模式对话框B弹出模式对话框C,C拥有同A一样的session。
窗口A弹出子窗口D,D拥有同A一样的session。
子窗口D弹出子窗口E,E拥有同A一样的session。

但是,如果:
模式对话框B弹出子窗口F,F 不再拥有同A一样的session,session为空。

注:弹出子窗口用的是window.open

请问:为什么会发生这种情况,如何解决这种情况,我想要F窗口也拥有同样的session应该如何?

谢谢您的关注!


如果不能获得同样的session话,可以当是参数传到哪个窗口哦,多几行程序吧!或者用一些作用域更大的共享的东东


可以把request作为参数传过去阿


sdfsdf



window.open('<%=response.encodeURL("url")%>'); 试试


XP+SP2的操作系统对其弹出小窗口都会有丢失SESSION的问题,改成绝对路径应该就会好了


kevinliuu(@。@) 的window.open('<%=response.encodeURL("url")%>'); 方法管用,谢谢!
前面说的传参数对我的应用不适合但还是感谢您的帮助


zhangj0571(笨鸟飞飞)您说这个问题的原因是系统不稳定造成的?我的系统是win2003+最新补丁


这个问题我也碰到过,出现这个bug的原因是你window.open的target已经存在,但是属于另外一个IE进程。

解决方法有几个:
1,强制客户使用MDI的浏览器(几乎不可能)
2,showModalDialog(改动太大)
3,把parent window的sessionId传回后台,当child window属于不同session的时候,使用旧的sessionId(画面无变化,程序的结构性改动也几乎没有,但仍没有解决两个窗体不是相同session,治标不治本)
4,保证每次window.open的都是使用当前PID的IE的窗口,比如window.open()中的target后面加上sessionId(原有的窗体还在,但是比上面改动更少,推荐)



描述一下这个问题的产生步骤,先关闭所有IE

从开始菜单开始IE,依次打开直到出错的窗口。
然后再从开始菜单打开IE,依次打开,最后哪个window.open利用的是上一次打开的同名窗口。利用任务栏管理器,可以看出,后面那次的parent window和child window分属两个iexpolre.exe进程,而sessionId是和进程相关的。


是SessionID丢失了, 和浏览器关系不大. 可以试一试将sessionid写入cookie, 这样就不需要理会哪个窗口了



↑返回目录
前一篇: URL大小写问题!!在线等。。。
后一篇: 请教一个jsp的问题