在web中,使用IE6版本弹出新建窗口时session值会为null.
因为Session ID会保存在浏览器的Cookie中,而IE6,每次弹出一个窗体的时候,都相当于启动了一个独立的IE浏览器,所以第一个窗体的Cookie和第二个窗体的Cookie不在一个存储区域,所以会导致索引不到服务器端的Session,这个没有办法。
解决的方式有两个,一个是弹出模式窗体(用JS来模拟)。第二个就是不弹出窗体了。
第三种方法是比较笨的方法,即传参。
jsp页面:
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
pageContext.setAttribute("basePath",basePath);
int adminid=(Integer) request.getSession().getAttribute("adminid");
String cityid=(String) request.getSession().getAttribute("id");
%>
<html>...</html>
<script type="text/javascript">
<!--
var win;
function edit(id){
win=window.open ('<%=basePath %>cityaction!toEdit.action?user.id='+id+'&cityid=<%=cityid%>', 'newwindow', 'height=768, width=1024, top=0, left=0, toolbar=no, menubar=no, scrollbars=yes,resizable=yes,location=no, status=no,alwaysRaised=yes,depended=yes,z-look=yes')
}
</script>
里面的cityid=<%=adminid%>在action中重新放进session里。其实参数较少或者其他页面用不着session时,直接传参就ok,不用非重新放进session里。如果新弹出的jsp页面用到Ajax验证,与后台交互需要session值时,就需要重新放置session了。
private String cityid="";
@AuthorityAnno(domain = "用户管理", action = "去修改",index=2)
public String toEdit() throws ParseException{
request.getSession().setAttribute("cityid", cityid);
return "toEdit";
}
//cityid的get/set方法略。
推荐下开的淘宝小店筱夜宫主(
http://xiaoyegongzhu.taobao.com/)DR.HU 胡博士美妆~坐在电脑旁的汉子姑娘注意脸部护理呀,做了程序媛,也要美丽啊。。。小店有优惠码:YE4450,报优惠码,抵两元券,(⊙o⊙)…
分享到:
相关推荐
IFrame中Session丢失的解决办法
重定向的时候是有session丢失的问题;window.open丢失session问题;使用框架(Frameset)调用不同域名下的页面,会出现此域下页面的Cookies和Session丢失的现象。
解决uploadify上传火狐浏览器下丢失session Flash上传丢失session
Session原理、Session丢失的原因、Session存储的机制、Session丢失的解决方案
Session丢失原因和解决方案.Session原理
IE的cookie机制导致的session问题及解决办法.docIE的cookie机制导致的session问题及解决办法.docIE的cookie机制导致的session问题及解决办法.docIE的cookie机制导致的session问题及解决办法.doc
今天在一个群中有人问到ie6中使用js的open,发现新窗口中并获取不到session, 经过使用下面的测试代码测试发现,是因为phpsessionid储存是进程级的有效期,只有同一进程才能获取得到,很多人说,open后或是target=”_blank...
asp.net 修改/删除站内目录操作后Session丢失问题
IE8串session的解决方法
Asp.net解决session丢失问题的两种方案,以及session丢失的原因。参考一些网上资料,自己总结出来解决方案,顺便附带两个测试案例。还有不清楚的请联系我QQ:394023002 附加信息:周
深入分析:出于隐私安全的考虑,IE 会丢失 Iframe 中的 Cookie,IE6/IE7 支持的 P3P(Platform for Privacy Preferences Project specification)协议默认阻止第三方无隐私安全声明的 Cookie,Firefox、Chrome 不...
session的丢失原因和解决方案,与viewstate和cookie 的区别
asp.net Session丢失的问题处理解决方案
feign调用session丢失解决方案, Hystrix传播ThreadLocal对象; 自定义熔断策略
NET的csharp的session丢失sessionid不一样 由于本地浏览器设置或者系统设置,导致sessionid无法准确上传到服务器
正对java Web项目,同浏览器同时打开两个登录窗口(不同Tag),用不同用户登录,为避免使用同一个Session,需要使用这段代码。否则先登录的用户的Session会变成后登录用户的Session.相关系统使用权限也会变。
NULL 博文链接:https://thoreau.iteye.com/blog/745100
本篇文章主要是对关闭ie窗口清除Session的解决方法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
NULL 博文链接:https://sch.iteye.com/blog/1278470