在部署项目的时候遇到了一个奇怪的问题,用户登录之后session中存放的用户信息失效。仔细观察url的变化,终于发现了问题所在。
登录前的url:www.zjcontest.net/zjcontest/index.do(实际上就是我们经常用的127.0.0.1/zjcontest/index.do)
登录后的url:www.zjcontest.net/login.do
大家一定发现问题了吧,两个url所在的域不一致,自然原先存储在/zjcontest/index.do下的session信息到了/login.do之后就失效了。为了验证,特地做了个实验,实验的结果如下:
当登录前的url为www.zjcontest.net/zjcontest/index.do,登录后的url为www.zjcontest.net/zjcontest/login.do时session是存在的,果然如我所料。既然找打了问题,那么自然要去解决,下面是service.xml的配置文件。
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="zjcontest" debug="0" reloadable="true"/> <Context path="/zjcontest" docBase="zjcontest" debug="0" reloadable="true"/> </Host> <Host name="www.zjcontest.net" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="D:/Tomcat 6.0/webapps/zjcontest" debug="0" reloadable="true"/> <Context path="/zjcontest" docBase="D:/Tomcat 6.0/webapps/zjcontest" debug="0" reloadable="true"/> </Host>