我已經在jsp中編寫了一個簡單的登錄模塊(有很多scriplets在那裏:))。但是,我不斷得到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>
LoginAction.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");
}
%>
LoginModel.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;
}
}
LoginValidator.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,它的工作正常。 幫我出
我擔心,我可能會downvoted這個密碼值。我是JSP新手,很多腳本也在那裏。我知道,它的不好的做法,我會改變這一點 –
你可能會陷入低谷的主要原因是不能識別第12行,儘管在這種情況下只有一行可能會引發異常。登錄爲空,或getUsername或getPassword返回null。 –
你最好掌握NPE的本質,並把它產生的原因。如果你知道它的含義,那麼確定它的來源對你來說會非常有幫助。 – Prateek