【发布时间】:2017-04-17 13:56:33
【问题描述】:
在我的智慧结束后,我在这里发布问题。 我在开发小型 JSP Web 应用程序时收到“java.lang.NullPointerException”错误。 请帮我修复它。
下面我提到我的代码:
<body>
<%!
public class Actor{
String URL = "jdbc:mysql://localhost:3306/henry_books";
String USERNAME = "root";
String PASSWORD = "adminroot";
Connection connection = null;
PreparedStatement selectActors = null;
ResultSet resultSet = null;
public Actor(){
try{
connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
selectActors = connection.prepareStatement("SELECT * FROM author");
}catch(SQLException e){
e.printStackTrace();
}
}
public ResultSet getActors(){
try{
resultSet = selectActors.executeQuery();
}catch(SQLException e){
e.printStackTrace();
}
return resultSet;
}
}
%>
<%
Actor actor = new Actor();
ResultSet actors = actor.getActors();
while(actors.next()){
%>
<span><%= actors.getInt("authorNum")%></span>
<% }
%>
</body>
在 ResultSet actor = actor.getActors() 上出现错误;线 错误:
org.apache.jasper.JasperException:
在第 48 行处理 JSP 页面 /book_app/web/index.jsp 时发生异常
45: %>
46: <%
47: Actor actor = new Actor();
48: ResultSet actors = actor.getActors();
49: while(actors.next()){
50: %>
51: <span><%= actors.getInt("authorNum")%></span>
Stacktrace:
root cause
java.lang.NullPointerException
org.apache.jsp.book_005fapp.web.index_jsp$Actor.getActors(index_jsp.java:39)
org.apache.jsp.book_005fapp.web.index_jsp._jspService(index_jsp.java:109)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
【问题讨论】:
-
您检查过您的日志吗?因为当
connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);抛出异常是导致selectActors = connection.prepareStatement("SELECT * FROM author");不被执行的一个路径。 -
其实我是 JSP 新手。好心你能指导我如何解决它吗?提前致谢。
-
这不是 JSP 特有的,它是通用的 Java 代码逻辑。如果
getConnection抛出异常,它会被您的catch捕获,并且prepareStatement不会被执行,因此selectActors仍然是null和getActors在null实例上调用executeQuery,从而导致NullPointerException。调试你的应用程序,看看它为什么会抛出异常。不要捕获使您的类处于不再可用状态的异常。 -
javax.servlet.ServletException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
-
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
标签: java jsp exception error-handling