有人可以帮我解决这个错误吗? 它说在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