Servlet.service() for servlet debugjsp threw exception

StandardWrapperValve[debugjsp]: Servlet.service() for servlet debugjsp threw exception

java.lang.NullPointerException

 

at org.apache.jsp.zhongyibu.wjhb_005fnr_jsp._jspService(wjhb_005fnr_jsp.java:113)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)

 

以上说是出现空指针异常,但代码

int id; 
try { 
id = Integer.parseInt(request.getParameter("id")); 
} catch (NumberFormatException e) { 
id = 0; 
} 

 
已经对此处进行捕捉,问题不是出于上面代码。
关键是id参数的值真正存在于数据库对应的ID值吗?
CD CD=dao.findCD(id);
假如经过

int id; 
try { 
id = Integer.parseInt(request.getParameter("id")); 
} catch (NumberFormatException e) { 
id = 0; 
} 

 后,变量id的值为0(),如果数据库中没有id为0或其它对应的值,则
CD CD=dao.findCD(id);
后得到的CD变量指向的是null,也就是根本就不是一个CD对象。
当CD为null时,<%=CD.getCDID()%>自然会出现NullPointerException。

可能原因:
id参数没有获得正确的值,导致dao.findCD(id); 返回null。
在使用CD.getCDID时,应先判断CD是否为空,如:

<% 
int id; 
try { 
id = Integer.parseInt(request.getParameter("id")); 
} catch (NumberFormatException e) { 
id = 0; 
} 
CDDAO dao=new CDDAO(); 
CD CD=dao.findCD(id); 
if(CD == null){ 
//out.println("no info!"); 
}else{ 
// 自己看着办吧…… 
} 
%>

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值