jsp中的错误:NullPointerException
Posted
技术标签:
【中文标题】jsp中的错误:NullPointerException【英文标题】:error in jsp : NullPointerException 【发布时间】:2014-08-03 07:54:10 【问题描述】:我有一个来自现有数据库的 getConnetion
的 MyDb 类和一个插入和更新数据库中的课程表的 COURSES 类。我在我的 jsp 文件中使用这个类,但是当我运行它时它的错误:
http 500 error :
org.apache.jasper.JasperException: java.lang.NullPointerException
MYDB 类:
public MYDB() throws ClassNotFoundException, SQLException
Class.forName(DRIVER);
con = DriverManager.getConnection(DB_URL, UNAME, PASS);
stmt = this.con.createStatement();
public Connection getCon()
return con;
public void setSQL(String SQL) throws SQLException
res = stmt.executeQuery(SQL);
课程类:
public COURSES() throws ClassNotFoundException, SQLException
MYDB c = new MYDB();
public void Insert(int id, String name, int unit) throws ClassNotFoundException, SQLException
String SQL = "INSERT INTO courses VALUES(" + id + ",'" + name + "' , " + unit + ")";
c.getStmt().executeUpdate(SQL);
public void updateName(int id, String newName) throws SQLException
String s = newName ;
String SQL = "update courses set name=" + s + "where id is" + id;
c.getStmt().executeUpdate(SQL);
jsp:
<%
COURSES d = new COURSES() ;
d.updateName(12, "op");
%>
并且这个 id 存在于课程表中。它的插入功能没问题并且可以工作。 我的错误在哪里?
【问题讨论】:
你能添加完整的堆栈跟踪吗? 1) 始终提供异常的完整堆栈跟踪。 2) Jasper 在您发布的任何代码中在哪里? 另外:where id is" + id
必须是 where id =" + id
我做 where id =" + id 但又没用。
【参考方案1】:
在构造函数中你给一个local变量c赋值:
public COURSES() throws ClassNotFoundException, SQLException
MYDB c = new MYDB();
在“Insert”和“updateName”方法中,您将引用一个可能尚未初始化的实例变量。
为了初始化实例变量,构造函数应该看起来像这样:
public COURSES() throws ClassNotFoundException, SQLException
c = new MYDB();
【讨论】:
以上是关于jsp中的错误:NullPointerException的主要内容,如果未能解决你的问题,请参考以下文章
Maven打包时出现“Show Console View”错误弹出框,错误详情为“An internal error has occurred. java.lang.NullPointerExcept
Spring JUnit 测试使用 TestContext.retrieveContextLoaderClass(TestContext .java:197) 获取 NullPointerExcept
<WebLogicServer; <BEA-000386; <Server subsystem failed. Reason: java.lang.NullPointerExcept