Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从数据库检索数据时发生NullPointerException_Java_Jsp_Servlets - Fatal编程技术网

Java 从数据库检索数据时发生NullPointerException

Java 从数据库检索数据时发生NullPointerException,java,jsp,servlets,Java,Jsp,Servlets,当我试图从数据库中检索数据时,它会显示NullPointerException 以下是我的servlet代码: public class displayData extends HttpServlet { String query; Connection conn; Statement st; ResultSet res; ConnectionManager dbconn; List lst= new ArrayList(); protec

当我试图从数据库中检索数据时,它会显示NullPointerException

以下是我的servlet代码:

public class displayData extends HttpServlet {
    String query;
    Connection conn;
    Statement st;
    ResultSet res;
    ConnectionManager dbconn;
    List lst= new ArrayList();
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try
        {
            dbconn= new ConnectionManager();
            conn=dbconn.getConnection();
            st=conn.createStatement();
            query="select * from reg";
            res=dbconn.getResultSet(query, conn);
            System.out.println(res);

           while(res.next())
                    {
                        lst.add(res.getString("uname"));
                        lst.add(res.getString("password"));    
                    }

           res.close();


        }catch(Exception e)
        {

           RequestDispatcher rd= request.getRequestDispatcher("/error.jsp");
           rd.forward(request, response);
        }

        finally
        {
            request.setAttribute("EmpData", lst);
            response.sendRedirect("/success.jsp");
            RequestDispatcher rd= request.getRequestDispatcher("/success.jsp");
            rd.forward(request, response);
            lst.clear();
            out.close();
        }

    }
下面是使用上述servlet代码从数据库检索数据的JSP代码:

    <body>
        <h1>Employee List</h1>

            <% Iterator itr;%>
            <% List data = (List) request.getAttribute("EmpData");
            for(itr=data.iterator(); itr.hasNext();)  
            {              
            %>
    <tr>
            <% String s= (String) itr.next();%>
            <td><%=s%></td>
            <td><%=itr.next()%></td>
            <td><input type="submit" value="Edit" onclick="editRecord(<%=s%>;)"</td>
            <td><input type="submit" value="Delete" onclick="deleteRecord(<%=s%>;)"</td>
               <%}%>
    </tr>
    </body>

员工名单

在看到您的Servlet代码后,我发现了多个问题,让我们逐一讨论

  • 我不确定您是否将servlet定义为servlet。 在web.xml中进行映射或添加如下注释
    @WebServlet(“/displayData”)公共类displayData扩展 HttpServlet{
  • 在servlet中没有doGet和doPost方法 容器不会调用方法processRequest。或者 放置doGet并调用您的服务方法或重命名您的服务方法 至doGet。参考-
  • 您在try-catch-finally块中执行的灾难。finally将始终被调用,因此在那里编写重定向代码是没有用的,因为它也将在catch之后执行。此外,finally块的前四行会导致严重问题。您不应同时调用sendRedirect和forward,然后再调用另一行。也不要同时调用sendRedirect或do forward,但不能同时执行这两项操作。 您将获得此异常illegalstateexception无法在提交响应后转发
    引用-
  • 在这种情况下,您必须执行转发或发送重定向 使用forward作为其服务器端操作。引用-
  • 根据你的jsp路径做转发。如果你的成功和错误 jsp直接位于Webcontent下面,然后这样做 request.getRequestDispatcher(“success.jsp”);

  • 更改这些内容,如果不起作用请再试一次让我知道

    请共享您的堆栈跟踪,以了解哪行代码可能出现异常?您是否收到此消息??java.lang.IllegalStateException:在提交响应后无法转发对于servlet jsp在org.apache.jsp.success\u jsp.\u jspService(success\u jsp.java:66)抛出的异常java.lang.NullPointerException,我已经在代码中解决了上述问题,但仍然出现错误…..警告:“StandardWrapperValve[jsp]:servlet.service()对于servlet,jsp在org.apache.jsp.success\u jsp.\u jspService(success\u jsp.java:66)抛出异常java.lang.NullPointerException'如果列表为空,只需在jsp中执行空检查谢谢您的响应。……问题解决了。……我试图直接调用jsp文件,而不设置属性。……我必须先调用servlet。……谢谢…………所以您一直在直接点击jsp??耶……它在插入数据时工作……但在显示数据时却不工作工作