有人可以幫我解決這個錯誤嗎? 它說在UserDao.login和LoginBean.loginproject上的NullPointerException。 我是JSF 2中的新過濾器。 從session.getAttribute(「attribute」)方法中正在使用哪個屬性?MySQL + JSF 2登錄過濾器
謝謝你受了不少
問候
UserDao.java
public class UserDAO {
...
public static Connection getInstance(){
if(connection == null)
new UserDAO();
return connection;
}
public static boolean login(String user, String password) throws SQLException {
connection = getInstance();
String Query1 = "SELECT nama, password " + "FROM user " + "WHERE nama = ? AND password = ?";
PreparedStatement statement1 = (PreparedStatement) connection.prepareStatement(Query1);
statement1.setString(1, user);
statement1.setString(2, password);
ResultSet rs = statement1.executeQuery();
if (rs.next()) // found
{
System.out.println(rs.getString("nama"));
return true;
}
else {
return false;
}
}
}
LoginBean.java
public class LoginBean implements Serializable {
...
//getters setters
public String loginProject() throws SQLException {
boolean result = UserDAO.login(uname, password);
if (result) {
// get Http Session and store username
HttpSession session = Util.getSession();
session.setAttribute("username", uname);
return "home";
} else {
FacesContext.getCurrentInstance().addMessage(
null,
new FacesMessage(FacesMessage.SEVERITY_WARN,
"Invalid Login!",
"Please Try Again!"));
return "login";
}
}
public String logout() {
HttpSession session = Util.getSession();
session.invalidate();
return "login";
}
}
你似乎已經不明白'NullPointerException'是什麼了。否則你會問爲什麼變量X是空的,這本來就是一個更清晰的問題。現在我們不知道'null'究竟是什麼,所以我們也不能解釋它爲什麼'null'。退後一步,學習基本的Java,以便在**發生'NullPointerException'時理解**。然後,告訴我們哪個變量完全是'null'。順便說一句,你的DAO泄漏了數據庫資源,也不是線程安全的,這是一個相當大的問題。但這是一個與你問到的不同的問題。 – BalusC 2013-02-14 15:00:06
它說在布爾結果nullpointer = UserDAO.login(uname,password);來自LoginBean.java和PreparedStatement語句1 =(PreparedStatement)connection.prepareStatement(Query1);從UserDao.java – 2013-02-14 20:24:15
實際上,我嘗試從這個鏈接的例子。該過濾器工作,但登錄doesnt。 http://knowledgeshare.awardspace.info/?p=204 – 2013-02-14 20:34:04