J'ai deux fichiers, l'un est le frontal login.jsp
et le back-end loginUser.java
. J'essaie d'obtenir le boolean
du loginUser.java
. Cependant, il y a une erreur java.lang.IncompatibleClassChangeError
. Je ne sais pas pourquoi cela sortira. Comment puis-je résoudre cette erreur? Merci.Comment résoudre - java.lang.IncompatibleClassChangeError?
Voici mon code de 'login.jsp':
try{
out.println("HT");
login.LoginUser user = new login.LoginUser(id,pwd);
boolean login_success = user.isLogin(); <---This line have error.
//int role_id = user.get_role_id();
if (login_success){
out.println("Login Success");
// out.println(user.get_role_id().toString());
%>
<script>
setTimeout(function() {
window.location.href = "control_panel.jsp"; //will redirect to your blog page (an ex: blog.html)
},2000);
</script>
<%
}
else{
out.println("Login Failed");
%>
Voici mon code de 'loginUser.java':
public class LoginUser {
private String username,password;
public boolean login_success;
public int role_id;
public LoginUser(String username,String password){
this.username=username;
this.password=password;
this.login_success=false;
this.role_id = 0;
}
public boolean login(){
db.DataConnect conn = new db.DataConnect();
conn.connect();
ResultSet login_result;
String sql_statement = "SELECT COUNT(*) AS user_found, role_id FROM t_user WHERE user_name = '" + this.username + "' AND password = '" + this.password + "'";
System.out.println(sql_statement);
try{
login_result = conn.select(sql_statement);
if(login_result.next()){
if(login_result.getInt("user_found") == 1){
login_success = true;
role_id = login_result.getInt("role_id");
}
}
} catch (Exception e) {System.out.println(e);}
conn.close();
return login_success;
}
public boolean isLogin(){
return true;
}
}
Cependant, quand j'ai changé la ligne boolean login_success = user.isLogin();
à boolean login_success = user.login();
, l'erreur ne sortira pas.