username取到的值为null,没有报错。
public class login {
public boolean findName1(String username,String password) throws SQLException{
Connection conn = Jdbc1.getConnection();
PreparedStatement ps = conn.prepareStatement("select password,username from registe where password=? and username=?");
ps.setString(1,password);
ps.setString(2,username);
ResultSet rs = ps.executeQuery();
boolean flag =rs.next();
 return flag;

}public class LOgin {
public String nameCha(User user1){
login l = new login();
System.out.println(user1);
try {
if(l.findName1(user1.getPassword(),user1.getUsername())){
return "登陆成功";
}else{
return "用户名不对或没有该用户";
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}

解决方案 »

  1.   

    .findName1(user1.getPassword(),user1.getUsername())这个方法,你的参数顺序写反了
      

  2.   

    打断点debug一下,看哪里传值失败导致为null
      

  3.   

    1楼和2楼说的都对,你参数肯定传错了,不过,也不排除你用户名和密码一样的情况,另外需要确定前端传到后台的参数映射是否正确了,比如你jsp写的是usename,你后台接收是以username接收的。
      

  4.   

    一樓正解,你的方法中username在前,password在后,而你傳的時候,password在前,username在后,結果在進行login時,password成了username,而username成了password,
      

  5.   

    你这里应该重点看得是你的User user1这个参数  你的user1是一个实体 他应该就是你从其它地方传过来的值都是在这个里面吧 你的 getPassword()   getUsername()  这两个属性的值 封装在了 你的 user1 里面  你跟进去看看在就是看看你的 值到底有没有传到里面去