1

我在 jsp 中编写了一个简单的登录模块(那里有很多脚本 :))。但是,我不断收到 NullPointer 异常错误。我找不到,我尝试了很多。

JSP登录代码

<form action="loginAction.jsp" method="post" name="config-form">
<table align="center">
    <tr>
        <td> UserName:</td>
        <td><input type="text" name="username" required parameter=*"></td>
    </tr>
    <tr>
        <td> Password:</td>
        <td><input type="password" name="username" required parameter=*"></td>
    </tr>
    <tr><td><input type="submit" value="LogIn"></td></tr>
</table>

登录操作.jsp

<body>
<%
    String username=request.getParameter("username");
    String password=request.getParameter("password");


    LoginModel login = new LoginModel();
    login.setUsername(username);
    login.setPassword(password);

    LoginValidator validator = new LoginValidator();
    boolean validate=validator.validateLogin(login);

    if(validate==false)
    {
        response.sendRedirect("login.jsp");
    }
    else
    {
        response.sendRedirect("index.jsp");
    }

%>

登录模型.java

public class LoginModel {
private String username;
private String password;
public String getUsername() {
    return username;
}
public void setUsername(String username) {
    this.username = username;
}
public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}

}

登录验证器.java

public boolean validateLogin(LoginModel login)
{
    String uname="vivekaltruist";
    String passwd="somePassword";
    System.out.println(login.getUsername());
    if((login.getUsername().equals(uname)) && login.getPassword().equals(passwd))
    {
        return true;
    }
        return false;
}

堆栈跟踪:

java.lang.NullPointerException 在 LoginValidator.validateLogin(LoginValidator.java:12)

我敢肯定,这将是一个愚蠢的理由,但我无法找到它。同样的事情,我试过没有jsp,它工作正常。帮帮我

4

2 回答 2

4

您也命名了密码输入username参数

<td><input type="password" name="username" required parameter=*"></td>

String password=request.getParameter("password");

将返回,因为当您尝试获取它并调用它时null,没有由它标识password并最终导致 a 的请求参数。将其属性更改为.NullPointerExceptionequals()name"password"

于 2013-09-24T19:58:16.613 回答
0

这里的问题

<td><input type="text" name="username" required parameter=*"></td>
<td><input type="password" name="username" required parameter=*"></td>

您的 tows 字段具有相同的名称。处理时,没有获得密码值

于 2013-09-25T03:09:41.177 回答