java servlet 异常新人求帮助

 type Exception report

message

description **The server encountered an internal error that prevented it from fulfilling this request.**

exception

java.lang.NullPointerException
    cn.edu.lingnan.dao.UserDataDAO.login(UserDataDAO.java:76)
    cn.edu.lingnan.test.UserDataTest.loginTest(UserDataTest.java:55)
    cn.edu.lingnan.servlet.LoginServlet.doGet(LoginServlet.java:28)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

相对应的代码段:
【1】LoginServlet
【1】从页面获取数据
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("网页获取:"+username+password);
//

// 【2】调用后台数据

           UserDataTest udt =new UserDataTest();
           boolean flag = udt.loginTest(username, password);

【2】

public boolean login(UserDataDTO user){
int a = 0;
boolean flag = true;
String sql ="select * from userdata where name =? and password=? and sigal<>0";
Object[] attribute={user.getName(),user.getPassword()};

rs = exectueQuery(sql,attribute);
try {

while(rs.next()){

a++;
}

if(a>0){
System.out.println("登陆成功");
flag = true;
}

【3】
public boolean loginTest(String name,String password){
boolean flag = true;
udto.setName(name);

udto.setPassword(password);
// udto.setPermissions("员工");
flag = udao.login(udto);

return flag;
}

UserDataDTO udto = new UserDataDTO();
udto.setName(name);
udto.setPassword(password);
这一步实现对象的初始化
Object[] attribute={user.getName(),user.getPassword()}
虽然没用过这种预执行的sql设值方式,但是你的空指针异常应该就是出现在这个地方,看异常提示最终到了 cn.edu.lingnan.dao.UserD ataDAO.login(UserDataDAO.java:76)
看看UserDateDAO的第76行代码应该就是Object[] attribute={user.getName(),user.getPassword()}这一行
应该是user对象为空了,所以获取的name和user的时候就产生空指针异常了

 public boolean loginTest(String name,String password){
boolean flag = true;
udto.setName(name);

udto.setPassword(password); 
// udto.setPermissions("员工");
flag = udao.login(udto);

return flag;
}

这段代码,udto怎么没看到你初始化?

空指向异常,看看是不是获取的数据值不符合,还是没有获取到相应的数据值(空值)

NullPointerException空指针异常是很容易解决的异常啊,第一:你的后台username,password取到值了吗 第二:你调用loginTest的时候实体udto在哪初始化的,set值的时候把值放进去了吗

LoginTest里面,你的udto没有看到初始化,但是你往里面set值了

空值了 可以对比前后台命名是否一致,或者没有初始化

问题解决了。是我把驱动包放错地方了,犯了低级错误。非常感谢各位的帮忙哈图片说明