空指针异常问题(springMVC)

qq_42765496 2018-07-22 06:47:10
本人新人一枚,在学springmvc,报空指针异常能帮忙看看嘛
public class LoginController extends  SimpleFormController{
private String showUser;
private String errPage;
public String getErrPage() {
return errPage;
}
public void setErrPage(String errPage) {
this.errPage = errPage;
}
public LoginController(){
setCommandClass(User.class);
}
protected ModelAndView onSubmit(Object command,BindException exception)throws Exception{
User user = (User) command;
LoginDao log = new LoginDao();
if(user.getUser().equals("")){
return new ModelAndView(getErrPage(),"error","用户名不能为空!");
}
if(user.getPwd().equals("")){
return new ModelAndView(errPage,"error","密码不能为空!");
}
if(user.getPwd().length()<6){
return new ModelAndView(errPage,"error","密码不能少于6位!");
}
if(log.isExist(user.getUser(),user.getPwd())){
return new ModelAndView(getShowUser(),"user",user);
}
return new ModelAndView(errPage,"error","账号或密码错误!");

}

public class LoginDao {
public boolean isExist(String username,String password){
Connection conn=DBManager.getConn();
boolean result=false;
String sql="select * from login where name=? and password=?";
PreparedStatement ps=null;
ResultSet rs=null;
try {
ps=conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
rs=ps.executeQuery();
if(rs.next()){
result=true;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBManager.closeAll(rs, ps, conn);
}
return result;
}
}

前面几个if判断都能执行并跳转但一运行到这个方法就报错
该方法在测试类中是可以运行的
public class Test {
public static void main(String[] args) {
LoginDao log = new LoginDao();
System.out.println(log.isExist("zhangsan","123456"));
}
}




是不是还要找spring-servlet中配置?还是别的
...全文
614 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_29958141 2018-07-27
  • 打赏
  • 举报
回复
rs=ps.executeQuery();
            if(rs.next()){
                result=true;
            }
问题应该出在这句上,执行executeQuery()方法的时候sql没有查到数组,导致rs.next()方法取下一条数据的时候报出了空指针。
一招鲜@Q 2018-07-26
  • 打赏
  • 举报
回复
缺少 mysql jar 包吧
  • 打赏
  • 举报
回复
你前端的 jsp代码贴出来看看,是不是你的 command对象为null啊?
长生ee 2018-07-25
  • 打赏
  • 举报
回复
(user.getUser(),user.getPwd() 里头有空吧
hr4370913 2018-07-25
  • 打赏
  • 举报
回复
前端值没有获取到
「已注销」 2018-07-25
  • 打赏
  • 举报
回复
空的三种判断 null , "" , "null" ,你的用户名没有注入成功,所以报空指针,可能实体属性名与表单中的属性名没有匹对
Braska 2018-07-24
  • 打赏
  • 举报
回复
代码跟进去看就知道了啊DAO层16行空指针。
还有这种查询语句太容易被sql注入攻击。
Combon 2018-07-24
  • 打赏
  • 举报
回复
if("".equals(user.getUser()))
端正你的眼神 2018-07-24
  • 打赏
  • 举报
回复
用到spring了吗,spring管理以后,controller直接new service或者dao都会报NPE,意思没有注入
General-M 2018-07-24
  • 打赏
  • 举报
回复
空指针异常,debug跟进去看下哪个是空就知道了
北九道 2018-07-23
  • 打赏
  • 举报
回复
com.mysql.jdbc.Driver not found
DBManager.getCon();贴出来就知道了
kingmax54212008 2018-07-23
  • 打赏
  • 举报
回复
从提示来看,缺jar包
qq_42765496 2018-07-23
  • 打赏
  • 举报
回复
classnotfound的问题解决了就这个空指针异常还有问题
stacksoverflow 2018-07-23
  • 打赏
  • 举报
回复
mysql的jar包没有添加到工程中。
stacksoverflow 2018-07-23
  • 打赏
  • 举报
回复
引用 4 楼 qq_42765496 的回复:
[quote=引用 1 楼 stacksoverflow 的回复:]
mysql的jar包没有添加到工程中。

那为什么在测试类里面可以执行,并且这个classnotfound有时报有时不报[/quote]
要放到工程的lib下面
qq_42765496 2018-07-23
  • 打赏
  • 举报
回复
引用 1 楼 stacksoverflow 的回复:
mysql的jar包没有添加到工程中。

那为什么在测试类里面可以执行,并且这个classnotfound有时报有时不报

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧