JSP调试啊啊啊老说这行错

org.apache.jasper.JasperException: An exception occurred processing JSP page /product_list.jsp at line 47

44: <%

45: for(int i=0;i 46: {
47: Product p= list.get(i);
48: %>
49:


50: <%=p.getProduct_id() %>

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.NullPointerException
org.apache.jsp.product_005flist_jsp._jspService(product_005flist_jsp.java:119)
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)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.52 logs.

这个是查询的JSP页面,另外还有一个插入的页面是成功的,但这个查询的不行。老说那行错。

附原码和一些java类:
<%@ page language="java" import="java.util.*,com.eshore.pojo.Product" contentType="text/html; charset=UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ page import="com.eshore.factory.DAOFactory" %>

<%
request.setCharacterEncoding("utf-8");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<%@ page language="java" import="java.util.*,com.eshore.pojo.Product" contentType="text/html; charset=UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ page import="com.eshore.factory.DAOFactory" %>

<%
request.setCharacterEncoding("utf-8");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


查下哪里是不是都有值

<%  
String product_name = request.getParameter("product_name");
List<Product> list= DAOFactory.getIEmpDAOInstance().findAll(product_name);

 %>
 <form action="product_list.jsp" method="post">
    请输入产品名称<input name="product_name"/>
    <input type = "submit" value = "提交">
 </form>
 <table border = "1">
    <tr>
        <td>产品编号</td>
        <td>产品名称</td>
        <td>产品价格</td>
        <td>产品信息</td>
    </tr>
    <%  
        for(int i=0;i<3;i++)            
    {
        Product p= list.get(i);         
    %>
     <tr>
        <td><%=p.getProduct_id() %></td>
        <td><%=p.getProduct_name() %></td>
        <td><%=p.getPrice() %></td>
        <td><%=p.getInfo() %></td>
    </tr>
    <% } 
    %>

java.lang.NullPointerException 是不是list为空啊

首先你在初始化List的时候,可以用java.util.Collections.EMPTY来初始化,这样可以判断list的size,如果size等于0,就没有值,这样不会报空指针异常

空指针异常,查看下

 44: <%

45: for(int i=0;i 46: {
47: Product p= list.get(i); 
48: %>
49:

50: <%=p.getProduct_id() %>

p对象是否为空