今天第一个异常是 点击登录 不管跟数据库密码匹配不匹配都是登录失败 后来解决方案是 c3p0中 数据库名没有更改
java.lang.IllegalStateException
非法状态异常,比如在Servlet中根据不同条件进行页面跳转时:
if(user==null){
response.sendDirect(request.getContextPath()+"/login.jsp");//3
}
request.getSession(true).setAttribute("myuser",user);
response.sendDirect(request.getContextPath()+"/logined/welcome.jsp");//4
==>第4句引发此异常,因为第3句已标示跳转了,虽然还能继续执行到后面,但就页面状态而言已经不能再跳,这个要涉及到Servlet容器内部知识,略之。总之,重定向或者转发页面的确都具备跳转页面的功能,但并不具备返回控制权的功能,其不能阻挡继续执行后续语句,所以:
解决方法:在第3句后加上return,否则你就写成if-else结构。
java.lang.ClassCastException
对象类型转换失败,比如当获得集合中的对象时:
User user =(User)users.get(i);之所以能够强转是因为存入的时候就是User对象,如果你一定要写成String user =(String)users.get(i);编译器并不报错(没有使用范型的情况下),但运行时就引发此异常了。类似的:String user =(String)request.getAttribute("myuser");一个道理。
解决方法:users如果是自定义的集合对象,可以使用范型。但是诸如后者request对象这些你没办法使用范型的,就要求你自己保证存入的类型和取出要强转的类型一致了。
类找不到异常,类加载器不能通过字符串描述加载对应的类,我们一般都是在ConnectionFactory中使用Class.forName(DRIVER);的时候DRIVER写错了引发该异常(至少目前为止你还没有机会通过该方法去加载其他需要的类,或者通过其他方式加载类)
解决方法:确保导了驱动包,确保拼写正确。
java.lang.NullPointerException 空指针异常 最为常见的异常 一般是对象没实例化 报这个异常 更改方法很简单了