jsp的空指针修改

来源:百度知道 编辑:UC知道 时间:2024/06/22 13:06:26
大家好啊!刚注册,所以分很少。我写了关于修改密码的jsp程序,可是运行时总是出现java.lang.NullPointerException
错误如下
org.apache.jasper.JasperException: Exception in JSP: /password.jsp:25

22: response.sendRedirect("pwlogin.jsp");
23: }
24: else{
25: rs.close();
26: db.close();
27: String strsql="update student password='"+newpw+"'where id='"+id+"'and password='"+oldpw+"'";
28: db.executeQuery(strsql);

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

java.lang.NullPointerException
or

在if里已经判断了rs != null && rs.next()) ,
就是说,
能执行到else语句块的rs一定是空的,
你让一个空的rs调用close方法肯定抛出空指针异常啊……
else语句块中把
rs.close();
db.close();

这两句去掉再试一下吧,
不行再贴代码,
异常和错误信息……

你的SQL语句写的对么String strsql="update student password='"+newpw+"'where id='"+id+"'and password='"+oldpw+"'";
我感觉应该是:String strsql="update student set password='"+newpw+"'where id='"+id+"'and password='"+oldpw+"'";
另外,else{rs.close();db.close();}这两句应该写在后面吧,先关闭了还怎么操作呢,还有,做有参SQL语句的时候不要用executeQuery();这个只做无参的时候用,有参用executeUpdate();
最后一个if(rs != null && rs.next()){}这个直接写if(rs.next()){"如果rs的值不为空则执行这里的操作"}就可以了.

我也是新手,所以也不知道能不能帮到你,

<jsp:useBean id="db" scope="page" class="shiyan.leave"></jsp:useBean>
确定是完整类名吗?
如果是那么你这里要修改
if(rs!=null){
if(rs.next()){