I am trying to get checked values from a form contained in a servlet to another servlet. How to do this?

谁都会走 提交于 2020-01-16 23:44:07

问题


Here is my servlet that contains the form.

try {
        Class.forName("com.mysql.jdbc.Driver").newInstance();


        Connection con1 = null;

        con1 = DriverManager.getConnection("jdbc:mysql://localhost:3306/itcomplaintsystem", "root", "colbiecaillat");


        Statement stmt = con1.createStatement();
        ResultSet rs = stmt.executeQuery("select * FROM complaints");
         out.println("<form action='assignedc1' method='post'>");
         out.println("<table cellspacing='0' width='100%' border=1 width=50% height=50%>");
         out.println("<tr><th>Select</th><th>C_NO</th><th>DEPT</th><th>SEC</th><th>NAME</th><th>PHONE</th><th>COMPLAINT FOR</th><th>COMPLAINT FOR(OTHERS)</th><th>MAKE & MODEL</th><th>MAKE & MOODEL(OTHERS)</th><th>MACHINE SERIAL NUMBER</th><th>NOP</th><th>REMARKS</th><tr>");

         while (rs.next()) {

             String cno=rs.getString("C_NO");
             String dpt = rs.getString("DEPT");
             String sec = rs.getString("SEC");
             String na = rs.getString("NAME");
             int pno = rs.getInt("PHONE");
             String cfor = rs.getString("COMPFOR");
             String cforo = rs.getString("COMPFORO");
             String mm = rs.getString("MMODEL");
             String mmo = rs.getString("MMODELO");
             String serno = rs.getString("MSERNO");
             String nop = rs.getString("NOP");
             String rem = rs.getString("REM");
             out.println("<tr> <td><input type=\"checkbox\" name='comp' value='" + cno + "'/></td><td >" + cno + "</td> <td >" + dpt + "</td><td>" + sec + "</td><td>" + na + "</td><td>" + pno + "</td><td>" + cfor + "</td><td>" + cforo + "</td><td>" + mm + "</td><td>" + mmo + "</td><td>" + serno + "</td><td>" + nop + "</td><td>" + rem + "</td></tr>"); 

             }




         out.println("</table>");


         out.println("<tabel cellspacing='o' width='50%'>");
         out.println("<tr><th> Select <th><th><th></tr>");
         out.println("<tr><td><input type=\"checkbox\" name='ITSubordinates' value='IT Subordinate 1' /></td><td> IT Subordinate 1</td></tr>");
         out.println("<tr><td><input type=\"checkbox\" name='ITSubordinates' value='IT Subordinate 2' /></td><td> IT Subordinate 2</td></tr>");
         out.println("<tr><td><input type=\"checkbox\" name='ITSubordinates' value='IT Subordinate 3' /></td><td> IT Subordinate 3</td></tr>");
         out.println("<tr><td><input type=\"checkbox\" name='ITSubordinates' value='IT Subordinate 4' /></td><td> IT Subordinate 4</td></tr>");
         out.println("<tr><td><input type=\"checkbox\" name='ITSubordinates' value='IT Subordinate 5' /></td><td> IT Subordinate 5</td></tr>");
         out.println("</table>");

         out.println("<button type=\"submit\" name=\"submit\" value=\"Submit\"> Submit </button>");
         out.println("</form>");
    }

Here is the servlet that performs the query required. What might be the issue?

protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException 
{
    PrintWriter out = response.getWriter(); 
    String[] comps = request.getParameterValues("comp");
    String[] subs = request.getParameterValues("ITSubordinates");
    out.println("<!DOCTYPE html>");
    out.println("<html>");
    out.println("<head>");
    out.println("</head>");
    out.println("<body>");
    out.println("hey");


  try
  {
    Class.forName("com.mysql.jdbc.Driver").newInstance();


    Connection con1 = null;
    Statement stmt = con1.createStatement();

    con1 = DriverManager.getConnection("jdbc:mysql://localhost:3306/itcomplaintsystem", "root", "colbiecaillat");
    PreparedStatement pstmt = null;
    ResultSet rs = null;


    for (int i=0;i<subs.length; i++) {
       for (int j=0;j<comps.length; j++)
       {
          pstmt = con1.prepareStatement("INSERT INTO assigndetails(C_NO,ASSIGNEDTO) values(" + comps[j] + "," + subs[i] + ")");
       }
    }
    int x = pstmt.executeUpdate();
    out.println("<!DOCTYPE html>");
    out.println("<html>");
    out.println("<head>");
    out.println("</head>");
    out.println("<body>");
    out.println("hey");
    out.println("<script type='text/javascript'>");
    if(x>0)
    {


        RequestDispatcher view = request.getRequestDispatcher("assignsuccess.jsp");
        view.forward(request, response);
        return;
    }
    else
    {
        out.println("<font color='red'<b>Sorry, couldn't be assigned.</b></font>");

    }   out.println("</script>");
    out.println("</body>");
    out.println("</html>"); 

   }
   catch(ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e)
   {
       out.println(e);
   }
}

On runnig, the webpage shows java.lang.NullPointerException. I'm not getting where I am going wrong. Kindly, resolve this.

来源:https://stackoverflow.com/questions/37851632/i-am-trying-to-get-checked-values-from-a-form-contained-in-a-servlet-to-another

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!