x53611925 2010-01-15 13:45 采纳率: 100%
浏览 1628
已采纳

关于用window.open打开网页session丢失的问题

今天遇到一个问题,我们程序因为某种原因后台管理与显示界面是分开的。
于是在一台主机中架了两个tomcat,现在后台管理需要加一个预览按钮,于是用window.open打开显示相关界面
也就是说http://192.168.0.200:8080中有一个网页用window.open打开http://192.168.0.200:8081的一个界面。
会出现session丢失的情况,(父窗口的session会丢失)。
当我把外网移动到另一台服务器上比如http://192.168.0.159:8081(ip不同),就不会出现问题。

哪位大哥知道是怎么回事啊?小弟现在这谢谢了

我的环境:Tomcat5.5,jdk1.5,windows 2000 server,ie6.0

[b]问题补充:[/b]
不是共享session是[b]父窗口[/b]session丢失,window.open打开的新窗口不需要session

还有链接党就不要在这混了。分不会给你们的
[b]问题补充:[/b]
我试过用target blank方法,还是会丢失session。个人认为是不是因为ip相同,所以session值发生序乱导致的?
[b]问题补充:[/b]
Ihavegotyou

在tomcat下cookie冲突好像没法子解决啊
[b]问题补充:[/b]
我的ie版本为IE6.0测试IE7也不可用

  • 写回答

16条回答 默认 最新

  • kukuwuwu 2010-01-15 15:34
    关注

    因为sessionid 在客户端是存储在cookie中的
    cookie 用 域 来控制对cookie的访问
    和端口无关
    当你用以个ip来访问不同端口的时候
    实际域是相同的 也就是说
    http://192.168.0.200:8080 http://192.168.0.200:8081
    域是一样的

    所以你在预览的时候 session 被覆盖成http://192.168.0.200:8081的session
    原来的http://192.168.0.200:8080 session 也就消失了

    当你用不同的ip地址访问时 域分别为 192.168.0.200 和192.168.0.159
    cookie 分别为这两个域建立了sessionid 而 sessionid 是用来标示session的

    所有就正常

    当你用域名访问时,分别用两个二级域名, 比如 admin.xxxxx.com www.xxxxx.com
    如果用ip 可以分别用两个ip来提供服务
    如果是单机 可以一个用回路 比如 127.0.0.1 一个用你的局域网地址 比如192.168.0.200

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(15条)

报告相同问题?

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。