`
fengyaodong
  • 浏览: 143804 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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{ 
// 自己看着办吧…… 
} 
%>

 

 

 

分享到:
评论
2 楼 lflbo 2015-10-14  
我发的顺丰
1 楼 lflbo 2015-10-14  
阿萨德阿萨德[b][/b]

相关推荐

Global site tag (gtag.js) - Google Analytics