妖怪问题 同应用下session丢失 绝对有难度 大家都来看看

比特灵 2009-04-28 06:05:15
我有个网站有3个域名/2台服务器(不是从一台到另外一台SESSION丢失):
1 www.xxx.com
2 xxx.com
==前两个指向x服务器

3 yyy.xxx.com
==指向 y 服务器

x服务器上程序:x.jsp
<%
response.sendRedirect("http://yyy.xxx.com");
%>

y服务器上程序: y1.jsp
<%session.setAttribute("y1name","y1value");
response.sendRedirect("y2.jsp");
%>

y服务器上程序: y2.jsp
<%=session.getAttribute("y1name")%>

==============现象:
1,通过:http://www.xxx.com/x.jsp 访问 会跳到 http://yyy.xxx.com/y2.jsp 页面显示“y1value” ---一切正常。

2,通过: http://xxx.com/x.jsp 访问 会跳到 http://yyy.xxx.com/y2.jsp 页面显示“null” ---就这里。

不好意思,说得有点乱,都能看懂吗?
...全文
180 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
jstuwaz 2009-05-08
  • 打赏
  • 举报
回复
不同域中重定向 session会丢失的

request只要重定向就会丢失
比特灵 2009-05-08
  • 打赏
  • 举报
回复
...
比特灵 2009-05-08
  • 打赏
  • 举报
回复
回LS:
x.jsp -> y1.jsp -> y2.jsp

y1.jsp 和 y2.jsp 在同一台服务器的同一个应用 y1 set y2 get.
比特灵 2009-05-04
  • 打赏
  • 举报
回复
无解,准备结贴
feiling111222 2009-05-04
  • 打赏
  • 举报
回复
不明白LZ指的是什么
比特灵 2009-04-29
  • 打赏
  • 举报
回复
回LS:
域名设置如下:

xxx.com 是 一级域名, www.xxx.com / yyy.xxx.com 是二级域名

你说的代理服务器是啥情况?
aiyust070 2009-04-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bigc2001 的回复:]


是的, y1.jsp -> y2.jsp 正常,读写都没问题。

x.jsp -> y1.jsp ->y2.jsp 就不可以。
[/Quote]

x.jsp -> y1.jsp ->y2.jsp 转发就不行,你带上参数跳转试下就可以了吧,这个我只在同一台电脑上试过。跳转带上参数没问题的
比特灵 2009-04-29
  • 打赏
  • 举报
回复
另外本地模拟的话一切正常,hosts中配置xxx.com .. yyy.xxx.com ....... www.xxx.com,不会有任何问题(2台TOMCAT服务器)。

此问题只在正式环境会出来

这个问题知道了回避掉了,但是确实存在,感觉很奇怪,也就没有随便扔掉,哪来研究研究,,,
比特灵 2009-04-29
  • 打赏
  • 举报
回复
我是这样想的:

xxx.com --> yyy.xxx.com时, 由于xxx.com 为一级域名,后者为2级域名,使用了一级域名的“目录”写了SESSION。 后来到yyy.xxx.com的第2个程序去读SESSION的时候,认为它没有权限,故读取不到。。。
CowardlyLion 2009-04-29
  • 打赏
  • 举报
回复
按道理不会出这情况,JSP又没参与域名解析,最终还是客户端向DNS请求,然后根据重定向状态码和回传IP来重定向的吧.按道理跟域名扯不上关系。
CowardlyLion 2009-04-28
  • 打赏
  • 举报
回复
是域控制器的域名还是?DNS配置的问题?
y1页面redirect到y2的时候,session丢失了。如果没刻意清除session,那就是session被重新实例化了。让我想到了代理服务器~
CowardlyLion 2009-04-28
  • 打赏
  • 举报
回复
是域控制器的域名还是?DNS配置的问题?
y1页面redirect到y2的时候,session丢失了。如果没刻意清除session,那就是session被重新实例化了。让我想到了代理服务器~
比特灵 2009-04-28
  • 打赏
  • 举报
回复
另外,在本地模拟的情况下,使用TOMCAT做服务器,没有这个问题,正式服务器是ws4。
比特灵 2009-04-28
  • 打赏
  • 举报
回复
估计又是域权限的问题,但是比较令人费解:

x 跳转的时候,y1认为http://xxx.com 和 http://yyy.xxx.com是相同域, 到y2 读取的时候认为 http://xxx.com 和 http://yyy.xxx.com是不同域。

如果换成http://www.xxx.com来做x的跳转,则y1和y2都会认为http://www.xxx.com 和http://yyy.xxx.com是不同域,故读写域都正常。。。

我是这么猜测的。
比特灵 2009-04-28
  • 打赏
  • 举报
回复


是的, y1.jsp -> y2.jsp 正常,读写都没问题。

x.jsp -> y1.jsp ->y2.jsp 就不可以。
qybao 2009-04-28
  • 打赏
  • 举报
回复
先抛开x服务器,y服务器上的y1.jsp到y2.jsp跳转时有Session丢失吗?
还有其他代码吗?sendRedirect会发一次request请求,难道这里面会丢失?
logbird 2009-04-28
  • 打赏
  • 举报
回复
我能 看明白 你的 意思 但是
我没 试过 不知道 呵呵 学习下吧
比特灵 2009-04-28
  • 打赏
  • 举报
回复
LS啊LS
  • 打赏
  • 举报
回复
大C啊大C
GeekZFZ 2009-04-28
  • 打赏
  • 举报
回复
路过学习
加载更多回复(1)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧