那位高手帮忙指点一下:
java.lang.NullPointerException
org.apache.jsp.goods.add_005fgoods_jsp._jspService(add_005fgoods_jsp.java:89)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)源程序: <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<title>信息录入</title>
<style>
  <!--
   
body {
background-image: url(../pic/bg2.jpg);
}
.STYLE1 {
color: #006400;
font-weight: bold;
}
.STYLE2 {color: #006400}
  -->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>
<body topmargin="0" leftmargin="0" onLoad="frmLoad()">
<%String gid = request.getParameter("gid");%>
<table border="0" width="101%" id="table1" height="100%" cellspacing="0" cellpadding="0">
  <tr>
    <td height="30" colspan="2" background="../pic/bg3.jpg">
      <span class="STYLE1">商品管理
        &gt;&gt;
        商品录入
&gt;&gt;      </span> </td>
  </tr>
  <form name="frmName1" action="" method="post">
  <tr>
    <td width="17%" align="center" height="26"><span class="STYLE2">商品ID</span></td>
    <td width="82%">
      <input type="text" name="gid" size="20" onBlur="haveOrno()" value="<%=gid%>">
      <span class="STYLE2">(</span>      <font color="#ff0000">*</font>
      <span class="STYLE2">必填)</span>    </td>
  </tr>
  </form>
<%
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:ecn","","");
Statement stmt=null;
  //库存有记录则不需要输入该产品的详细信息,否则要输入,默认是无记录。
  String exist = "";
  if (!gid.equals("")) {
    try {
      stmt = conn.createStatement();
      ResultSet rs = stmt.executeQuery("select gid from goods_info where gid=" + gid);
      if (rs.next())
        exist = "yes";
        else
        exist="no";
      rs.close();
      stmt.close();
      conn.close();
    }
    catch (SQLException e) {}
  }
%>
  <form name="frmName2" action="info_exe.jsp" method="post" ENCTYPE="multipart/form-data">
  <input type="hidden" name="gids" value="<%=gid%>">
  <tr id="tr0">
    <td align="center" colspan="2"><span class="STYLE2">你添加的产品是新产品,需要 录入以下信息!</span></td>
  </tr>
  <tr id="tr1">
    <td width="17%" align="center" height="26"><span class="STYLE2">商品名称</span></td>
    <td width="82%">
      <input type="text" name="goods_name" size="20">
      <span class="STYLE2">(</span>      <font color="#ff0000">*</font>
    <span class="STYLE2">必填)</span>    </td>
  </tr>
  <tr id="tr2">
    <td width="17%" align="center" height="26"><span class="STYLE2">规格型号</span></td>
    <td width="82%">
      <input type="text" name="model" size="20">
      &nbsp;
    </td>
  </tr>
  <tr id="tr3">
    <td width="17%" align="center" height="26"><span class="STYLE2">出售价格</span></td>
    <td width="82%">
      <input type="text" name="outprice" size="20">
      <span class="STYLE2">(</span>      <font color="#ff0000">*</font>
    <span class="STYLE2">必填)    </span></td>
  </tr>
  <tr id="tr4">
    <td width="17%" align="center" height="26"><span class="STYLE2">产品图片</span></td>
    <td width="82%">
      <input type="file" name="a0" size="20">
    </td>
  </tr>
  <tr>
    <td width="17%" align="center" height="26"><span class="STYLE2">入库数量</span></td>
    <td width="82%" align="right">
      <p align="left">
        <input name="save_number" size="20" style="float: left">
        <span class="STYLE2">(        </span><font color="#ff0000">*</font>
      <span class="STYLE2">必填)      </span></td>
  </tr>
  <tr>
    <td colspan="2">
      <p align="center">
        <input type="button" value="保存信息" name="B1" onClick="sub()">
        <input type="reset" value="放弃信息" name="B2">    </td>
  </tr></table>
</form></body>
</html>
<script language="JavaScript">
 function frmLoad()
 {
   for(i=0;i<=4;i++)
   {
     var obj=document.all("tr"+i);
     //默认不显示商品相关信息
     obj.style.display="none";
     //表示窗体第一次加载的时候,不能显示商品相关信息的输入框
      if("<%=exist%>"=="")
      {
      obj.style.display="none";
      //数据库中没有商品记录,则显示相关信息输入框
      }else if("<%=exist%>"=="no")
      {
        obj.style.display="";
      }
   }
 }
 function haveOrno()
 {
     document.frmName1.submit();
 }
  function sub()
 {
     document.frmName2.submit();
 }
</script>

解决方案 »

  1.   

    NullPointerException 调试你代码那些 初始化的位置。
    看有没有地方的对象为空的。
      

  2.   

    lz跟踪一下,看看哪里有对象有可能为null的
      

  3.   

     if (!gid.equals("")) { 
        try { 
          stmt = conn.createStatement(); 
          ResultSet rs = stmt.executeQuery("select gid from goods_info where gid=" + gid); 
          if (rs.next()) 
            exist = "yes"; 
            else 
            exist="no"; 
          rs.close(); 
          stmt.close(); 
          conn.close(); 
        } 
        catch (SQLException e) {} 
      } 
    这里有可能出现null的情况,要判断下……改为:if (gid!=null&&!gid.equals(""))