解决方案 »

  1.   

    你在check.jsp那里把response.sendRedirect("success.jsp");
    改成response.sendRedirect("succeed.jsp?s_name="+username);
    因为session他只保存一次页面跳转后的值,如果要继续为下一页服务,就要传参
      

  2.   

    check.jsp的代码
     <%
     String s_name="";
     String s_pass="";
     s_name=request.getParameter("username");
     s_pass=request.getParameter("password");
     if("admin".equals(s_name)&&"pass".equals(s_pass))
     {
    request.getSession(false).setAttribute("userName", s_name);
     response.sendRedirect("success.jsp");
     response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
     response.setHeader("Location","success.jsp");
     }
     else
     {
     response.sendRedirect("login.jsp");
     response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
     response.setHeader("Location","login.jsp");
     } 
    %>
    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     <html>
       <head>
       </head>
       
       <body>
        <center><%Object userNameObj = request.getSession(false).getAttribute("userName");
                           String userName = new String();
                           userName = userNameObj != null ? userName.toString() : "Hey, guy. You haven't signed on yet.Get to sign on first then you are alowed to use this page.";%>
         <h1>Hello! &nbsp;<%=userName %></h1>
        </center>
       </body>
     </html>
      

  3.   

    你用的是重定向 所以不是同一个request
    这里应该用转发
      

  4.   

    check.jsp里,sendRedirect和下面setStatus+setHeader有一个是多余的浏览器会重定向到success.jsp,要获取到前面的用户信息,可以像一楼等传递请求参数,或者服务器把数据保存起来,像2楼一样的用session