在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与IFrame的基本概念及其在Web开发中的交互方式。Session是Web应用中用于存储用户特定信息的一种机制,它允许开发者在用户的会话期间...
重定向的时候是有session丢失的问题;window.open丢失session问题;使用框架(Frameset)调用不同域名下的页面,会出现此域下页面的Cookies和Session丢失的现象。
Session丢失的原因及解决办法 Session是Asp.net网站的一种重要机制,用于保持用户登录状态和验证码等信息,但是Session丢失的问题却经常出现。那么, Session 丢失的原因是什么?如何解决这个问题呢? Session的...
解决uploadify上传火狐浏览器下丢失session Flash上传丢失session
这样做可以创建一个与当前窗口不共享Session的新窗口,每个新会话窗口将拥有独立的Cookie和Session信息。 2. **使用-nomerge参数**:通过“运行”命令启动IE8,并添加-nomerge参数。例如,在命令行输入`iexplore....
### Session丢失解决方法 在ASP.NET开发过程中,经常会遇到一种情况:当对网站进行某些特定操作(如修改或删除站内目录)时,原本正常的Session会突然失效或丢失。这不仅影响用户体验,还可能导致一系列安全性和...
标题中提到的“ie与session丢失(新窗口cookie丢失)”涉及到了Web开发中几个关键概念,即Internet Explorer浏览器、Session管理、以及Cookie的使用。Session丢失问题对于任何需要用户身份认证的网站都至关重要,因为...
ASP.NET Session 丢失通常是由多种原因引起的,包括进程重启、Session超时、配置文件更改、应用程序更新或杀毒软件活动。在深入探讨解决方案之前,让我们先理解Session的基本原理。 Session是一种服务器端的状态...
标题与描述概述的知识点主要集中在Internet Explorer(IE)的Cookie机制如何引发Session丢失的问题,并探讨了解决方案。本文将深入解析这一现象的原因、影响以及如何有效应对。 ### 一、IE Cookie机制与Session关联...
NULL 博文链接:https://thoreau.iteye.com/blog/745100
6. **使用单点登录(SSO)**:对于大型企业级应用,可以采用单点登录系统,用户只需要登录一次,即可在多个子系统间自由切换,减少Session丢失的问题。 7. **考虑无状态设计**:在微服务架构中,推动服务无状态化,...
在IT行业中,弹出窗口(通常指的是模态窗口)是一种常见的用户界面设计,用于提供额外的信息或交互功能,而不中断用户对主界面的操作。在这个"弹出窗口互相传值范例"中,我们将会探讨如何在不同的弹出窗口之间传递...
feign调用session丢失解决方案, Hystrix传播ThreadLocal对象; 自定义熔断策略
本文将深入探讨Session丢失的原因以及相应的解决方案。 **1. Session的工作原理** ASP.NET的Session基于HTTP协议,由于HTTP是无状态的,所以为了在用户的不同请求之间保持状态,服务器会为每个用户分配一个唯一的...
Asp.net解决session丢失问题的两种方案,以及session丢失的原因。参考一些网上资料,自己总结出来解决方案,顺便附带两个测试案例。还有不清楚的请联系我QQ:394023002 附加信息:周
- 使用独立的Session ID:为每个窗口或标签页生成新的Session ID。 - 鉴别用户来源:在服务器端检测请求来源,如窗口ID或页面URL,从而区分不同窗口的请求。 - 使用局部存储(LocalStorage或SessionStorage):...
正对java Web项目,同浏览器同时打开两个登录窗口(不同Tag),用不同用户登录,为避免使用同一个Session,需要使用这段代码。否则先登录的用户的Session会变成后登录用户的Session.相关系统使用权限也会变。
解决办法同样是确保正确设置Cookie策略,使得Session能够在不同的页面间正确传递。 总的来说,针对IE浏览器中iframe跨域导致Session丢失的问题,关键在于理解浏览器对跨域Cookie的处理方式,特别是IE的独特限制。...