因此,我有一個jsp文件(ShowProducCatalog.jsp)試圖通過javabean(ProductDataBean.java)從mysql數據庫訪問檢索數據。我正在使用netbeans IDE。我通過從netbeans ID創建表並確認服務器正在運行,並查看mysql工作臺中的同一個表。但每次我開始我的應用程序時,我得到這個錯誤空指針異常Java Web應用程序
org.apache.jasper.JasperException: An exception occurred processing JSP page /ShowProductCatalog.jsp at line 9
6:
7: <html>
8: <body>
9: <% List productList = data.getProductList();
10: Iterator prodListIterator = productList.iterator();
11: %>
12:
而根本原因是從我的豆 根源
java.lang.NullPointerException
cart.ProductDataBean.getProductList(ProductDataBean.java:36)
org.apache.jsp.ShowProductCatalog_jsp._jspService(ShowProductCatalog_jsp.java:81)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
這裏是我的ProductDataBean部分,其中的誤差來自形式:
public class ProductDataBean implements Serializable
{
private static Connection connection;
public ProductDataBean()
{
try
{
String userName = "root";
String password = "root";
String url = "jdbc:mysql://localhost:/eshopdb";
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = DriverManager.getConnection(url,userName,password);
System.out.println("Database connection established");
}catch(Exception e){e.printStackTrace();}
}
public static Connection getConnection()
{
return connection;
}
public ArrayList getProductList() throws SQLException
{
ArrayList productList = new ArrayList();
Statement statement = connection.createStatement();//ERROR HERE
ResultSet results = statement.executeQuery("SELECT * FROM product");
while (results.next())
{...
似乎連接變量永遠不會初始化或什麼!但我的用戶名,密碼和網址是正確的。請幫助!
正常情況下,發佈時很容易明確關於錯誤發生的行。 –
有什麼理由不能使用泛型,或者JSTL的''?儘量不要將Java代碼放入JSP中。相反,讓您的應用程序將'productList'作爲請求屬性。你有單元測試嗎? –
我已經指定了錯誤來自哪裏的代碼行。它在豆子裏。我對java中的web開發非常陌生。這是我的第一個實驗室之一 – mbass