怎么会呢,我点击第一个td,转到下一页用<%=session.getAttribute("box1")%>;和<%=session.getAttribute("box2")%>;取出来的值分别都是0,应该第二个box2取出来的为null才对啊!

解决方案 »

  1.   

    是因为,之前执行过session.setAttribute("box2",String.valueOf(0))。就是说session能一直保存client 段数据,直到session过期。这就是session常用于权限验证的道理了。
      

  2.   

    我都是关掉错误的那个ie窗口,重新打开另一个ie窗口来做的,这样session也会传递吗?
    那这样的session问题该怎么调试呢?
      

  3.   

    而且奇怪的是,我在后面用同样的onclick来去掉session
    <td onclick="<%session.removeAttribute("box1");%>">
    链接1
    </td>
    <td onclick="<%session.removeAttribute("box2");%>">
    链接2
    </td>
    得到的结果也是点击一个,另一个也触发,最后box1和box2都变为了null
      

  4.   

    我的感觉是:
    <%session.setAttribute("box1",String.valueOf(0));%>
    和<%session.setAttribute("box2",String.valueOf(0));%>
    是服务器端代码,在你下载这个页面时已经执行了,
    误以为是点一个的时候执行了两个,也就是说,你一个都还没有点的时候,这两个都已经执行过咯!请试一下这样的方法:
    <td>
        <a href="1.jsp">链接1</a>
    </td>
    1.asp:
    <%
    session.setAttribute("box1",String.valueOf(0));
    redirect(workPlace)
    %>另一个链接也类似处理,应该可以实现你想要的效果
      

  5.   

    谢谢楼上的解答,确实有这样的问题,看来只能这样的分开写,但是还有个问题是用
    <%
    session.setAttribute("box1",String.valueOf(0));
    response.sendRedirect("workPlace.jsp");
    %>
    其中的sendRedirect方法会影响session的传递吗?我试过好像如果在workPlace.jsp中再有链接转到其他页面后,就取不到刚刚set的session值了,为什么呢?
      

  6.   

    redirect 应该不会影响到session传递的
      

  7.   

    经试验,session在处理这样的问题好像是会不妥,还是用javascript改变页面hidden控件比较好