日期:2014-05-18  浏览次数:20645 次

jdk5+tomcat5.5 session丢失
<%@   page   language= "java "   pageEncoding= "UTF-8 "%>
<html>
    <head>
        <title> </title>

    </head>
   
    <body>
<%

if((String)session.getAttribute( "data ")   ==   "123 ");
{
System.out.println( "当前会话中的data的值是123 ");
}
else
{
session.setAttribute( "data ", "123 ");
System.out.println( "当前会话中为空,并且几设置data的值是123 ");
}
%>

    </body>
</html>


第一次打开结果是:
当前会话中为空,并且几设置data的值是123


如果刷新或按f5的话。
结果还是
当前会话中为空,并且几设置data的值是123


为什么。session的值为什么会丢了?


别人好象不会....是tomcat有问题吗?还是我的代码有问题?
哪位大吓懂得.....????

------解决方案--------------------
(String)session.getAttribute( "data ") == "123 ";
字符串比较不能用相等,==比较的是是否同一对象.
改为(String)session.getAttribute( "data ").equals( "123 ");
------解决方案--------------------
if( "123 ".equals((String)session.getAttribute( "data ")));
{
System.out.println( "当前会话中的data的值是123 ");
}
else
{
session.setAttribute( "data ", "123 ");
System.out.println( "当前会话中为空,并且几设置data的值是123 ");
}
------解决方案--------------------
先研究equals和“==”的区别吧
基础是最重要的