!!200分求教!!在showModelessDialog窗口中open一个新窗口时会删除session么??在线等.... 不好意思:) 是showModalDialog 不是showModelessDialog!!!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那看你的服务器了,如果是tomcat就会出现这个问题,weblogic就不会了 to: stonecsdn(东东) 谢谢你:能说明一下具体原因么? 是呀! 有的机子可以取到,有的取不到:(说一下页面的流程吧!首先是一个列表页面(主页面),里面有添加,删除的功能, 点击添加,用open打开一个新的html, 在这个新的页面中,可以用html编辑器输入内容,用到编辑器时,在这个页面中用showModalDialog方法打开html编辑,在编辑器中选择上传图片的功能,用showModalDialog打开插入图片的html,在上传图片的html中可以选择本地上传文件和服务器上的文件, 选择服务文件时,用open方法请求一个servlet,就是这个servlet取不到session了.(最后只能用open打开servlet)唉,不知道你说清楚了没,简化一下主页面 用open打开--->添加页面 用showModalDialog打开--->html编辑器 用showModalDialog打开--->上传图片页面 用open打开--->servlet!!! 在这取不到session了 showModalDialog 和showModelessDialog 都会出现丢失session现象所以正确而又可靠的方法是不用session而用隐藏域传递参数值window.showModelessDialog("yourpage.jsp",window,"dialogWidth:200px;dialogHeight:360px;center=yes;status=no;help=no;scroll=yes;"); yourpage.jsp-----------------var pwin = window.dialogArguments;pwin就是对父窗口的引用,跟通常弹出窗口的opener类似,剩下的就不用多说了吧 to:youthy_yy(希望我的回帖能对您有所帮助)可是我这几个页面都是静态的html呀! 取不到session!! 列表页面又是写死的,不能改!本可做一个jsp来取session,然后传参数,但是会破坏页面结构,上头不允许呀:( !!! 一般情况下session是通过cookie来保存sessionid的, 模式窗口不传递cookie, 所以服务器拿不到sessionid,自然也就不能找到session. 解决办法是首先设置服务器软件可以通过url取sessionid,然后在客户端的html页面中通过分析cookie, 将session做为jsp的url参数来传递就可以了.当然要根据你使用的不同的java服务器软件来找其对应的cookie, 因为他们使用的cookie名字是不同的.附在html中设置及取得cookie值的javascript脚本:==========cookie.js=================function getCookie(name) { var start = document.cookie.indexOf(name+"="); var len = start+name.length+1; if ((!start) && (name != document.cookie.substring(0,name.length))) return null; if (start == -1) return null; var end = document.cookie.indexOf(";",len); if (end == -1) end = document.cookie.length; return unescape(document.cookie.substring(len,end));}function setCookie(name,value,expires,path,domain,secure) { document.cookie = name + "=" +escape(value) + (expires ? ";expires=" + expires.toGMTString() : "")+ ( (path) ? ";path=" + path : "") + ( (domain) ? ";domain=" + domain : "") + ( (secure) ? ";secure" : "");}function delCookie(name,path,domain) { if (getCookie(name)) document.cookie = name + "=" + ( (path) ? ";path=" + path : "") + ( (domain) ? ";domain=" + domain : "") + ";expires=Thu, 01-Jan-1970 00:00:01 GMT";} 我以前也遇到过session丢失的情况。这与web服务器和浏览器都有关。版本高的浏览器每开一个窗口都创建不同的 sessionID,所以原来的窗口的session不会传到新开窗口中。可以通过 HttpSessionBindingListener 对象检测他们的sesionid。 模式窗口不传递cookie???在 asp 里面天天用showModalDialog 和showModelessDialog这两个东东,可是我从来就没碰到过这种情况啊! hibernate 配置没有错误,建表语句,不能执行 关于 LINUX下 JAVA使用JNI调用C.SO动态库问题 。。。。。 安装不上tomcat 求2手 JSP2.0技术手册(要有光盘啊) 其他相关的书 也要呀 有的兄弟速度啊 谢谢啦 xsl的一点问题 机不可失! 如何获取当前url,包括后面的参数 关于jpql的疑惑 JSP 2.0 的规范都有哪些? spring3 jdbctemplate 注解事务不回滚问题 请问怎样处理页面刷新后重复提交的问题? 关于包的问题
谢谢你:能说明一下具体原因么?
首先是一个列表页面(主页面),里面有添加,删除的功能, 点击添加,用open打开一个新的html, 在这个新的页面中,可以用html编辑器输入内容,用到编辑器时,在这个页面中用showModalDialog方法打开html编辑,在编辑器中选择上传图片的功能,用showModalDialog打开插入图片的html,在上传图片的html中可以选择本地上传文件和服务器上的文件, 选择服务文件时,用open方法请求一个servlet,就是这个servlet取不到session了.(最后只能用open打开servlet)
唉,不知道你说清楚了没,简化一下
主页面 用open打开--->添加页面 用showModalDialog打开--->html编辑器 用showModalDialog打开--->上传图片页面 用open打开--->servlet!!! 在这取不到session了
所以正确而又可靠的方法是不用session而用隐藏域传递参数值
window.showModelessDialog("yourpage.jsp",window,"dialogWidth:200px;dialogHeight:360px;center=yes;status=no;help=no;scroll=yes;");
yourpage.jsp
-----------------
var pwin = window.dialogArguments;
pwin就是对父窗口的引用,跟通常弹出窗口的opener类似,剩下的就不用多说了吧
可是我这几个页面都是静态的html呀! 取不到session!! 列表页面又是写死的,不能改!本可做一个jsp来取session,然后传参数,但是会破坏页面结构,上头不允许呀:( !!!
附在html中设置及取得cookie值的javascript脚本:
==========cookie.js=================
function getCookie(name) {
var start = document.cookie.indexOf(name+"=");
var len = start+name.length+1;
if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
if (start == -1) return null;
var end = document.cookie.indexOf(";",len);
if (end == -1) end = document.cookie.length;
return unescape(document.cookie.substring(len,end));
}function setCookie(name,value,expires,path,domain,secure) {
document.cookie = name + "=" +escape(value) +
(expires ? ";expires=" + expires.toGMTString() : "")+
( (path) ? ";path=" + path : "") +
( (domain) ? ";domain=" + domain : "") +
( (secure) ? ";secure" : "");
}function delCookie(name,path,domain) {
if (getCookie(name)) document.cookie = name + "=" +
( (path) ? ";path=" + path : "") +
( (domain) ? ";domain=" + domain : "") +
";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}
这与web服务器和浏览器都有关。
版本高的浏览器每开一个窗口都创建不同的 sessionID,
所以原来的窗口的session不会传到新开窗口中。
可以通过 HttpSessionBindingListener 对象检测他们的sesionid。
可是我从来就没碰到过这种情况啊!