网站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
如果您有时间看一下

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

hwhwcool
hwhwcool 你好,您这个问题解决了么,请问如何解决的,谢谢!
大约 7 年之前 回复

4个回答

请问楼主你的验证码与http://topic.csdn.net/u/20080402/00/cc7bf21e-97be-4fb4-9fcb-d9b6cae0a253.html中写法类似么:function refImage(){
document.all.image1.src="/warehouse/image.jsp";
}
如果是的话,jsp是有缓存的,相同url不是每次都会刷新,所以你在第二次以后其实取的已生成的验证码图像。修改代码,每次产生新url。document.all.image1.src="/warehouse/image.jsp" + new Date();

document.all.image1.src="/warehouse/image.jsp?time=" + new Date();

这样啊。我再看看。你执行过ping +域名的命令么?出来的ip是否和你的ip相同呢?

比如webapps/abc项目绑定了www.abc.com的域名,那么ping这个域名出来只有ip地址没有abc这个项目名,这样会造成问题吗? 这个问题,我没有遇到,不知道。无能为力了,期待解答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问