无法使用基本的java web登录

时间:2015-11-04 12:31:57

标签: java

我是java的初学者,我正在练习基本的java web。在这个例子中,我无法使用其他用户名登录,只有“admin”的用户名是accept。错误在哪里?

//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,它有构造函数和用户名。

1 个答案:

答案 0 :(得分:2)

你真的看你的代码吗?:

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

期望这个方法做什么?你已经硬编码了用户名必须"admin"的逻辑,而没有别的。因此,在这种情况下,唯一有效的用户名是"admin"

如果您希望代码的行为不同,则必须以某种方式对其进行更改。