2015-11-04 30 views
0

我是java的初學者,我在練習基本的java web。在這個前例中,我無法用另一個用戶名登錄,只有「admin」的用戶名是accept。錯誤在哪裏?無法通過基本的java網頁登錄

//admin.jsp 
<% 
MemberDAO member = new MemberDAO(); 
%> 
<h1>Welcome ${member.getUsername()} to the system</h1> 
<a href="ControllerServlet?action=logout">Log out</a> 


//login.jsp 
<form action="ControllerServlet" method="post"> 
    <input type="hidden" value="login" name="action"/> 
    Username: 
    <input type="text" name="username" placeholder="Username"/> 
    <input type="submit" value="login"/> 
</form> 

// ControllerServlet.java 
protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    String action = request.getParameter("action"); 
    RequestDispatcher dispatcher = null; 
    if (action == null || action.equals("logout")){ 
     dispatcher = request.getRequestDispatcher("login.jsp"); 
    } 
    else if(action.equals("login")){ 

     MemberDAO dao = new MemberDAO(); 
     String username = request.getParameter("username"); 
     if(dao.checklogin(username)){ 
      dispatcher = request.getRequestDispatcher("admin.jsp"); 
     } 
     else{ 
      dispatcher = request.getRequestDispatcher("login.jsp"); 
     } 
    } 
    dispatcher.forward(request, response); 
} 

// MemberDAO.java 
public boolean checklogin(String username){ 
    if (username != null && username.equals("admin")) 
     return true; 
    return false; 
} 

而我有Member.java,它有構造函數和用戶名。

回答

2

你真的看看你的代碼

public boolean checklogin(String username){ 
    if (username != null && username.equals("admin")) 
     return true; 
    return false; 
} 

你有什麼期望方法呢?你有硬編碼的邏輯,用戶名必須"admin",沒有別的。所以在這種情況下唯一有效的用戶名是"admin"

如果您希望代碼的行爲不同,您必須以某種方式更改它。

+0

謝謝!我是初學者.... –