1,login.jsp(部分代码)
    Statement stmt = DB.createStmt(conn);
ResultSet rs = DB.executeQuery(stmt, sql);

    if(rs.next())
 {
           session.setAttribute("nicheng",nicheng);
           response.sendRedirect("index.jsp");
 }
  else
  {
  
   response.sendRedirect("error.jsp");
    
  }
 
2,index.jsp
   <%  
    String nicheng=(String)session.getAttribute("nicheng");
    if(nicheng!=null){}
%>
&nbsp;
<div align="right" class="STYLE3"><%if(session.getAttribute("nicheng")!=null){%>
  <%out.print(session.getAttribute("nicheng")); %>
    <a href="<%session.invalidate();%>" class="STYLE4">退出</a><%} %></div>3,bbs.jsp
    <div align="right">
<%        if(session.getAttribute("nicheng")!=null){       
         out.print(session.getAttribute("nicheng")); 
      
%>
      <a href="../index.jsp" >退出</a>
<%}  System.out.println(session.getAttribute("nicheng")); %>
      <a href="../login.jsp">登陆</a>
      <a href="../register.jsp"> 注册</a> 
      </div>
login.jsp是用户注册,index是首页  登陆后显示用户名,bbs也要显示用户名的,login和index在webroot里 bbs在webroot的bbs文件夹里。
我的问题是:
     1:index获得值刷新后就没有了。
     2:bbs.jsp获取得值为空。
在别人电脑重新的几个简单的jsp可以获取到值。我的只有index也能获取到。我用的是tomcat6.0 
 

解决方案 »

  1.   

    <a href="<%session.invalidate();%>" class="STYLE4">退出</a><%} %></div>你已经让session失效了哦!
      

  2.   

    在转发页面时使用response.sendRedirect("index.jsp");
    会执行两次,当然会没有值,你使用request.getRequestDispatcher(url).forward(request, response);
      

  3.   

    谢谢你 的确是 但是 现在session应该什么时候失效呢,如果用户退出session就失效,应该怎么做呢?
    我想在做一个“退出” 然后就释放应该怎么做呢?
      

  4.   

    用onunload事件,当关闭网页的时候或点击退出的时候象服务器发个请求,接收请求的可以是jsp、servlet或struts的javabean
    例如 当前页面
    <%@ page language="java" contentType="text/html; charset=UTF-8"%>
     
    <%

    %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><script language="javascript">function signOut()
    {
    document.form1.submit();
    }
    </script>
    </head>
    <body onunload="signOut();">
    正文部分××××××××××××××××××××
    <input type="button" value="退出" onclick="signOut();" />
    <a href="javascript:void(0)" onclick="signOut();" >退出</a>
    <form action="sinout.jsp" method="post" name="form1">
    </form>
    </body>
    </html>退出页面sinout.jsp此处可以用servlet或struts接收<%@ page language="java" contentType="text/html; charset=UTF-8"%>
    <%
    String userid = (String)session.getAttribute("session_userid");
    System.out.println("用户"+userid+"退出");//可以用日志类记录日志信息
     session.invalidate();
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <script type="text/javascript">
    <!--
     
    //-->
    </script>
    </head>
    <body>
    欢迎下次光临
    重新登录的链接等
    </form>
    </body>
      

  5.   

    你的session已经被销毁了<a href="<%session.invalidate();%>" class="STYLE4">退出</a><%} %></div>