Apache Tomcat重新启动会导致Java中的会话清除,并且JSP页面上的会话仍然存在

时间:2012-02-15 13:29:00

标签: java jsp struts2 tomcat6

我在jsp页面中编写了一个jsp重定向,就像这样

<s:if test="#session.Doctor =  true ">
    <script type="text/javascript">
        top.location.href = "dashboard";
    <s:property value="#session.Doctor" />
    </script>
</s:if>

当我重新启动Tomcat时,标签在我的jsp页面中打印true。但我在struts中编写了一个拦截器来检查会话System.out.println(session.get("doctorLogin")+"test");,并在重新启动页面时打印null。在这里我可以理解,当我重新启动tomcat时会在java中清除会话,并且当我重新启动tomcat时,会话在jsp中持续存在。有没有人知道为什么这个会话在java页面中被清除的原因以及为什么在重启tomcat时它不在jsp页面中。有人有想法吗?

我使用struts2,hibernate和tomcat6作为服务器

感谢。

1 个答案:

答案 0 :(得分:1)

if标签中的测试是否已损坏?

在java中,表达式session.Doctor = true不检查session.Doctor的值。相反,它将值分配给session.Doctor。

尝试使用<s:if test="#session.Doctor == true ">(注意第二个等于)