我作了个单据管理系统,在登录成功时把session设定好,可有时session的值却取不到。有时又是正常的。老是要弹几次你未登录后才能完全正常工作
我用的resin3.0,语句分别是:
<% session.setAttribute("right","true"); %>
我判断时用的是:
<%
         String rit="";
if(session.getAttribute("right")!=null)
rit=(String)session.getAttribute("right");
if(!rit.equals("true"))//判断是否已经登录
{
%>
<script language="javascript">
alert("你尚未登录系统!请先进行登录。")
location.href='index.jsp'
</script>
<%
}
%>
我以前用session.putValue(),session.getValue()也同样有这个问题。
session.putValue(),session.setAttribute()又有什么区别呢?

解决方案 »

  1.   

    你自己在好好看一看程序
    if(!rit.equals("true"))//判断是否已经登录
    {
    %>
    <script language="javascript">
    alert("你尚未登录系统!请先进行登录。")
    location.href='index.jsp'
    </script>
    <%
    如果rit的值是true,表示用户已经登录,是不是?
    如果是的话,执行js,在js中你的alert是输出用户未登录的提示信息,然后
    在执行 location.href = 'index.jsp'.
    你的alert提示信息写错了!!!!!!
      

  2.   

    session.putValue(),session.getValue()是j2eesdk中的Deprecated方法,也就是过时的,不提倡使用的方法,已经被session.setAttribute()和session.getAttribute()取代。
      

  3.   

    ....我前面有个'!'符号的啊,表示的是不等于"true"才执行,逻辑上没出错滴。
    to kevinliuu(@。@) 谢谢你的回答!小弟分少只能给你10哈,对不住了!
    session.putValue(),session.setAttribute()又有什么区别呢?已经被回答。请大家帮忙解决登录问题,在此先谢啦!
      

  4.   

    你加一个输出看看如果取不到需要的值时session是什么值
    if(session.getAttribute("right")!=null){
      system.out.println("#########"+session.getAttribute("right")+"########")
      rit=(String)session.getAttribute("right");
      system.out.println("*********"+rit+"*******");
    }
    看看输出就知道是怎么回事了
    可能是之前用过了session的"right"
    也可能是session的"right"为空串有时候可能要写成这样:
    if((session.getAttribute("right")!=null)||(((String)session.getAttribute("right")).length()==0))
      

  5.   

    可能是之前用过了session的"right"
    --------
    ??难道只能用一次?
    不是放在里面可以随便用几次吗?
      

  6.   

    请这样简单判断:
    if ((String)session.getValue("right")==null) {
    %>
    <script language="javascript">
    alert("你尚未登录系统!请先进行登录。")
    location.href='index.jsp'
    </script>
    <%}用户无登陆就没有这个值
    }
      

  7.   

    TO wangweibilly(慕容) ( ) 信誉:100 
    ---------------------------------
    这方法也解决不了问题。我有时读出session就是空的
      

  8.   

    什么意思? 这个方法不能解决 判断登陆吗?你用户登陆 验证密码后 即:request.getSession(true);
    session.putValue("right","true");你有request.getSession(true); 吗?
      

  9.   

    问题是登录后有时session里还是没值,或者开始有值,过一会就没值了。
      

  10.   

    TO kongxiangli(笑看红尘) ( ) 信誉:115 
    ----------------------------
    我只生成过一次session。照理说有问题的话,应该每次都登录不成功才对啊!