这种错误怎么解决呢?

ijse 2009-08-06 01:34:34
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
Regist.doPost(Regist.java:26)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.


--------------------------------------------------------------------------------

Apache Tomcat/6.0.13
...全文
67 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ijse 2009-08-06
  • 打赏
  • 举报
回复
我明白了!!!
把它换成:

ConnSql ConMySql = new ConnSql();

这样就好使了!!

谢谢各位了!!马上结贴!!
ijse 2009-08-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 aywrenyue 的回复:]
在定义了这个变量
Java code ConnSql ConMySql=null;
之后就没有实例化,而你紧接着就是用了
Java codeConMySql.Update("insert into users values(null,'"+ username+"','"+ password+"','"+ gentle+"','"+ email+"');");
所以null错
[/Quote]
ConnSql ConMySql = null;
这是MyEclipse提示的,我也不太清楚.那这问题要怎么解决? 我怎么实例化呢?对不起我是初学者,请讲得稍微详细点儿..谢谢啦.
紫炎圣骑 2009-08-06
  • 打赏
  • 举报
回复
楼上正解!

java.lang.NullPointerException 空指针异常了!
aywrenyue 2009-08-06
  • 打赏
  • 举报
回复
在定义了这个变量
 ConnSql ConMySql = null;

之后就没有实例化,而你紧接着就是用了
ConMySql.Update("insert into users values(null,'" + username + "','"
+ password + "','" + gentle + "','" + email + "');");

所以null错
ijse 2009-08-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 haoziheyezi 的回复:]
空指针异常嘛

有东东为空你就拿来用了
[/Quote]
我不想贴代码的,也许大家不太喜欢看,但我还是要贴代码。。、
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Regist extends HttpServlet {
private static final long serialVersionUID = 1L;


protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
ConnSql ConMySql = null;
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");

PrintWriter out = resp.getWriter();

String username = req.getParameter("userName");
String password = req.getParameter("passWord");
String gentle = req.getParameter("gentle");
String email = req.getParameter("email");

ConMySql.Update("insert into users values(null,'" + username + "','"
+ password + "','" + gentle + "','" + email + "');");
out.println("<html><head><title>注册成功</title><body>");
out.println("<table><tr><td colspan='2'>恭喜注册成功!您的注册信息是:</td></tr>");
out.println("<tr><td>用户名:</td><td>" + username + "</td></tr>");
out.println("<tr><td>密码:</td><td>" + password + "</td></tr>");
out.println("<tr><td>性别:</td><td>" + gentle + "</td></tr>");
out.println("<tr><td>email:</td><td>" + email + "</td></tr>");
}
}

这是那个页面调用的Servlet代码,然后下面还有那个类的代码:
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ConnSql extends HttpServlet {

private static final long serialVersionUID = 1L;
public String DataBase = "jdbc:mysql://localhost/ijseblog?user=root&password=clslist";
ConnSql()
{

}
public void Connection() {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

public ResultSet Execute(String sql) {
ResultSet rs = null;
Connection conn = null;
Statement stm = null;
Connection();
try {
conn = DriverManager.getConnection(DataBase);
stm = conn.createStatement();
rs = stm.executeQuery(sql);
} catch (SQLException e) {
System.out.println("SQLException:" + e.getMessage());
System.out.println("SQLState:" + e.getSQLState());
System.out.println("VendorError:" + e.getErrorCode());
}
return rs;
}

public int Update(String sql) {
int rt = 0;
Connection conn = null;
Statement stm = null;
Connection();
try {
conn = DriverManager.getConnection(DataBase);
stm = conn.createStatement();
rt = stm.executeUpdate(sql);
} catch (SQLException e) {
System.out.println("SQLException:" + e.getMessage());
System.out.println("SQLState:" + e.getSQLState());
System.out.println("VendorError:" + e.getErrorCode());
}
return rt;
}

public static void main(String args) {
System.out.println("ok!");
}

protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {

req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
String username = req.getParameter("UserName");

PrintWriter out = resp.getWriter();

Connection();
ResultSet rs = Execute("Select * from users where dbusername='"
+ username + "'");
try {
while (rs.next()) {
out.println("<html><head><title>查询结果</title></head><body>"
+ rs.getString("dbusername") + "的密码是:"
+ rs.getString("dbpassword") + "</body></html>");
}
} catch (SQLException e) {
System.out.println("SQLException:" + e.getMessage());
System.out.println("SQLState:" + e.getSQLState());
System.out.println("VendorError:" + e.getErrorCode());
}
}

}
haoziheyezi 2009-08-06
  • 打赏
  • 举报
回复
空指针异常嘛

有东东为空你就拿来用了
jastby 2009-08-06
  • 打赏
  • 举报
回复
Regist.java:26行 有东西为null

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧