男人看手相算命准吗:求救!出现java.lang.NullPointerException问题怎么解决?

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 18:00:25
提示错误如下:
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

java.lang.NullPointerException
com.MembBean.addUser(MembBean.java:19)
org.apache.jsp.regiester.addmemb_jsp._jspService(addmemb_jsp.java:95)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

源代码为:
1.MembBean.java
import java.sql.*;
public class MembBean
{
private Connection conn;
public void ProductBean()
{
this.conn=DBConn.getConnection();
}

public void addUser(UserInfo userinfo)throws Exception
{
try
{
PreparedStatement pstmt = conn.prepareStatement("insert into memb_info(memb_type,memb_no,memb_pw,link_name,id_no,sex,link_tele,link_fax,link_addr,post_code,vali_sign) values(?,?,?,?,?,?,?,?,?,?,?)");
pstmt.setString(1,userinfo.getMembtype());
pstmt.setString(2,userinfo.getMembno());
pstmt.setString(3,userinfo.getMembpw());
pstmt.setString(4,userinfo.getLinkname());
pstmt.setString(5,userinfo.getId());
pstmt.setString(6,String.valueOf(userinfo.getSex()));
pstmt.setString(7,userinfo.getTele());
pstmt.setString(8,userinfo.getFax());
pstmt.setString(9,userinfo.getAddr());
pstmt.setString(10,userinfo.getPostcode());
pstmt.setString(11,String.valueOf(userinfo.getSign()));
pstmt.execute();
//conn.close();
}
catch(java.sql.SQLException e)
{
e.printStackTrace();
throw e;
}
}
}

com.MembBean.addUser(MembBean.java:19)
org.apache.jsp.regiester.addmemb_jsp._jspService(addmemb_jsp.java:95)
这句是告诉你你的类com.MembBean的addUser方法出错,在MembBean.java的19行,报空指针异常,
下面这些依次是你调用这个方法的过程

求救!出现java.lang.NullPointerException问题怎么解决?
悬赏分:10 - 离问题结束还有 6 天 22 小时
提示错误如下:
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

java.lang.NullPointerException
com.MembBean.addUser(MembBean.java:19)
org.apache.jsp.regiester.addmemb_jsp._jspService(addmemb_jsp.java:95)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

源代码为:
1.MembBean.java
import java.sql.*;
public class MembBean
{
private Connection conn;
public void ProductBean()
{
this.conn=DBConn.getConnection();
}

public void addUser(UserInfo userinfo)throws Exception
{
try
{
PreparedStatement pstmt = conn.prepareStatement("insert into memb_info(memb_type,memb_no,memb_pw,link_name,id_no,sex,link_tele,link_fax,link_addr,post_code,vali_sign) values(?,?,?,?,?,?,?,?,?,?,?)");
pstmt.setString(1,userinfo.getMembtype());
pstmt.setString(2,userinfo.getMembno());
pstmt.setString(3,userinfo.getMembpw());
pstmt.setString(4,userinfo.getLinkname());
pstmt.setString(5,userinfo.getId());
pstmt.setString(6,String.valueOf(userinfo.getSex()));
pstmt.setString(7,userinfo.getTele

有两种可能,
1.addmemb_jsp.java:95,这可能是你的jsp页面addmemb.jsp里面没有初始化DBConn,应该加上new DBConn();
2.
public void addUser(UserInfo userinfo)throws Exception
{
在这个方法里加上ProductBean();
如果不行那在ProductBean()方法里也加上new DBConn();
再有空指针那你就自己写jdbc吧,用别人的类都不明白乱用不是一种好习惯

connection对象没有初始化。
1.MembBean.java
import java.sql.*;
public class MembBean
{
private Connection conn;
public void ProductBean()
{
this.conn=DBConn.getConnection();
}
/**私有构造函数初始化conn**/
pravite MembBean()
{
ProductBean();
}
加个构造函数就OK了。

对象在调用前没初始化

conn 是 null 因为你没有初始化它,只是写了初始化函数