from_0
from_0
2009-11-18 10:52

网站ip改为域名后访问jsp和Action会产生两个Session

  • 企业应用

我现在这里有一个网站,通过jsp和Action访问却有两个Session
具体情况就是在注册页面有一个验证码
验证码是通过jsp生成的,在jsp里使用session.setAttribute()保存验证码
然后去后台Action中取出Session里的和用户输入的验证码进行对比
我同时访问保存验证码的jsp和取出验证码的Action,分别打印两个session,就像我在一楼说的那样,如果是在“http://ip:端口/项目名”形式访问就会是同一个session,但是如果是“http://域名:端口”访问就会是两个session,我就不明白了...

是不是这种存取验证码的方式有问题呢?那为什么ip下访问正常,域名下就有问题呢?

如果我没说明白,我看到csdn上这个问题和我的很相似,可以参考下:
http://topic.csdn.net/u/20080402/00/cc7bf21e-97be-4fb4-9fcb-d9b6cae0a253.html
[b]问题补充:[/b]
to:liuyu220
谢谢你。
我认为不是缓存的问题,jsp页面已加入清缓存的代码,我在后台也看了jsp打印的验证码和session对象,以及Action中的Session对象。我发现在“http://域名:端口号”访问的情况下jsp和Action打印的Session不是同一个对象!而在“http://ip:端口号”形式访问就是同一个对象。

嗯,我在je又找到一个跟我更类似的问题,你可以看一下:
http://www.iteye.com/problems/15323

那位朋友后来说是jsessionid的问题,我也认为是不知什么原因产生了2个session的问题。如果解决的话我觉得就是如何保证访问同一个网站不管是jsp还是Action只生成一个session的问题
[b]问题补充:[/b]
to:liuyu220
再次感谢!
我执行了ping+域名
ip是服务器的ip
但是我现在服务器的Tomcat有2个项目,一个在ROOT根下,一个是别的项目
比如webapps/abc项目绑定了www.abc.com的域名,那么ping这个域名出来只有ip地址没有abc这个项目名,这样会造成问题吗?
[b]问题补充:[/b]
to:liuyu220
谢谢啦
这个问题不重要
反正ping这个域名会出现服务器ip
那你看我的host配置虚拟主机有问题吗,代码如下:
[code="java"]
xmlValidation="false" xmlNamespaceAware="false">

xmlValidation="false" xmlNamespaceAware="false">



[/code]

是否因为配置的问题导致jsessionid不一致呢?
因为我看到这个帖子说到这个问题:http://www.iteye.com/problems/1910
如果您有时间看一下

实在感谢,我没分了,要不都给你了,哎...

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

4条回答