2014-01-08 226 views
0

我遇到了一個相對簡單的問題。我正在嘗試做一個簡單的程序,在那裏你可以使用會話登錄和註銷。 會話已創建,但我總是轉到面板servlet,然後轉到NoCorrectSession頁面。就好像在登錄頁面上,服務器看到了isActive屬性,然後在面板頁面上沒有。會話屬性丟失

//class Login extends HttpServlet 
private RequestDispatcher pageLogin, pagePanel, pageError; //defined in init() 

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    HttpSession session = request.getSession(); 
    String name = request.getParameter("name"); 
    String isBeingRequested = request.getParameter("isBeingRequested"); 
    if (session.getAttribute("isActive") != null) { 
     //user has been logged in before, redirect him 
     pagePanel.forward(request, response); 
    } else if (isBeingRequested != null) { 
     //user has entered data into the login page and submitted it    
     if (name.length() == 0) { 
      //user has not stated his name 
      pageError.forward(request, response); 
     } else { 
      //otherwise access is granted and account created 
      session.setAttribute("isActive", "yes"); //setting session to active 
      pagePanel.forward(request, response); 
     } 
    } else { 
     //neither of these? user just entered the login screen 
     pageLogin.forward(request, response); 
    } 
} 

//class Panel extends HttpServlet { 
private RequestDispatcher pageNoCorrectSession; 

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 

    HttpSession session = request.getSession(); 
    //session has expired or never was started 
    if (session.getAttribute("isActive") == null) { 
     pageNoCorrectSession.forward(request, response); 
    //session valid 
    } else { 
     //logged in - do stuff 
    } 
+0

相關http://stackoverflow.com/questions/17464453/using-sessions-in-java-servlet – aalku

回答

0

在項目挖掘後,它變成了我還沒有做出這些servlet的一個錯誤,但在HTML代碼造成直接提交表單到面板servlet的(而不是在創建過程中的帳戶對象) 。我知道這很愚蠢,但這是一個很好的教訓。預計意外:P