2012-03-09 95 views
0

我试图做一个Java Web应用程序,用户可以登录到一个Java Web应用程序,我创建的网站上访问一个页面certian。我在下面的代码中检查用户的电子邮件和密码是否存在于我的成员数据库中。会话变量没有被设置

然而,当我尝试设置SEESION变量为null。

try { 
     Class.forName(driver).newInstance(); 
     conn = DriverManager.getConnection(url, userName, password); 
     if (request.getParameter("email") != null && !request.getParameter("email").equals("") && request.getParameter("password") != null && !request.getParameter("password").equals("")) { 
      email = request.getParameter("email").toString(); 
      userpass = request.getParameter("password").toString(); 
      strQuery = "SELECT * FROM member WHERE email = ? and password =?"; 
      PreparedStatement stmt = conn.prepareStatement(strQuery); 
      stmt.setString(1, email); 
      stmt.setString(2, userpass); 


      System.out.println(stmt); 
      rs = stmt.executeQuery(); 
      int count = 0; 
      while (rs.next()) { 
       session.setAttribute("email", rs.getString(2)); 
       System.out.println(session.getAttribute(email)); //This is null in system console it should not be 
       count++; 
      } 
      if (count > 0) { 
       response.sendRedirect("index.jsp"); 
      } else { 
       response.sendRedirect("index.jsp"); 
      } 
     } else { 
      response.sendRedirect("gourmet.jsp"); 
     } 
     System.out.println("Connected to the database"); 
     conn.close(); 
     System.out.println("Disconnected from database"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

回答

3

您的代码中存在一个简单的语法错误。您的会话变量需要在引号内。 试试这个:

System.out.println(session.getAttribute("email"));