java错误

h4cxqtbf  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(325)

我很难弄清楚为什么我的代码会出错。下面是我的jsp文件(问题在于第二个表单):

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Book Drivers</title>
</head>
<body>
    <h1>Book Demands</h1>
    <form method="POST" action="BookDriver.do">
        <br>View a table </br>
        <input type="radio" name="tbl" value="ListTodaysDemands">List Todays Demands<br />
        <input type="radio" name="tbl" value="ListAllDemands">List All Demands<br />
        <input type=submit value="Go!"> <br />
    </form>
</body>
<body>
    <h2>Demands</h2>
    <%=(String)(request.getAttribute("query"))%>
</body>
<body>
    <h2>Journeys</h2>
    <%=(String)(request.getAttribute("query1"))%>
</body>
<body>
    <h2>Drivers</h2>
    <%=(String)(request.getAttribute("query2"))%>
</body>
<body>
    <h2>Book taxi</h2>
    <form method="POST" action="BookDriver.do">     
        <table>
            <tr>
                <th></th>
                <th>Please provide your following details</th>
            </tr>
            <tr>
                <td>Name:</td>
                <td><input type="text" name="name"/></td>
            </tr>
            <tr>
                <td>Address:</td>
                <td><input type="text" name="address"/></td>
            </tr>
            <tr>
                <td>Destination:</td>
                <td><input type="text" name="destination"/></td>
            </tr>
            <tr>
                <td>Date:</td>
                <td><input type="text" name="date"/></td>
            </tr>
            <tr>
                <td>Time:</td>
                <td><input type="text" name="time"/></td>
            </tr>
            <tr> 
                <td> <input type="submit" value="Book"/></td>
            </tr>
        </table>
    </form>
</body>

下面是我的控制器:

public class BookDriver extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    response.setContentType("text/html;charset=UTF-8");
    LocalDate date = LocalDate.now();
    String qry1 = "select * from CUSTOMER";
    String qry2 = "select * from DRIVERS";
    String qry3 = "select * from DEMANDS where date = '"+date+"'"; 
    String qry4 = "select * from DEMANDS";
    String qry5 = "select * from JOURNEY";
    //String qry4 = "SELECT Drivers.Name, Drivers.Registration FROM Drivers LEFT JOIN Journey ON Journey.Registration = Drivers.Registration LEFT JOIN Demands ON Demands.Time = Journey.Time WHERE Demands.id IS NULL";
    //String qry4 = "SELECT Drivers.Name, Drivers.Registration FROM Drivers LEFT JOIN Journey ON Journey.Registration = Drivers.Registration LEFT JOIN Demands ON Demands.Date = Journey.Date LEFT JOIN Demands ON Demands.Time = Journey.Time WHERE Demands.id IS NULL"; 

    response.setContentType("text/html;charset=UTF-8");
    HttpSession session = request.getSession(false);

    Jdbc dbBean = new Jdbc();
    dbBean.connect((Connection)request.getServletContext().getAttribute("connection"));
    session.setAttribute("dbbean", dbBean);

    if((Connection)request.getServletContext().getAttribute("connection")==null)
        request.getRequestDispatcher("/WEB-INF/conErr.jsp").forward(request, response);

    else if (request.getParameter("tbl").equals("ListTodaysDemands")){
        String msg="No current demands";
        String msg2="No current journeys";
        String msg3="No current journeys";
        try {
            msg = dbBean.retrieve(qry3);
            msg2 = dbBean.retrieve(qry5);
            msg3 = dbBean.retrieve(qry2);
        } catch (SQLException ex) {
            Logger.getLogger(BookDriver.class.getName()).log(Level.SEVERE, null, ex);
        }
        request.setAttribute("query", msg);
        request.setAttribute("query1", msg2);
        request.setAttribute("query2", msg3);
        request.getRequestDispatcher("/WEB-INF/bookDemands.jsp").forward(request, response);
    }
    else if (request.getParameter("tbl").equals("ListAllDemands")){
        String msg="No current demands";
        String msg2="No current journeys";
        String msg3="No current drivers";
        try {
            msg = dbBean.retrieve(qry4);
            msg2 = dbBean.retrieve(qry5);
            msg3 = dbBean.retrieve(qry2);
        } catch (SQLException ex) {
            Logger.getLogger(BookDriver.class.getName()).log(Level.SEVERE, null, ex);
        }
        request.setAttribute("query", msg);
        request.setAttribute("query1", msg2);
        request.setAttribute("query2", msg3);
        request.getRequestDispatcher("/WEB-INF/bookDemands.jsp").forward(request, response);
    }
///////////THIS PART NOT WORKING//////////////////////////      
    String [] query = new String[5];
    query[0] = (String)request.getParameter("name");
    query[1] = (String)request.getParameter("address");
    query[2] = (String)request.getParameter("destination");
    query[3] = (String)request.getParameter("date");
    query[4] = (String)request.getParameter("time");

    Jdbc jdbc = (Jdbc)session.getAttribute("dbbean"); 

    if (jdbc == null)
       request.getRequestDispatcher("/WEB-INF/conErr.jsp").forward(request, response);

    if(query[0].equals("") ) {
        request.setAttribute("msg", "Username cannot be NULL");
    } 
    request.getRequestDispatcher("/WEB-INF/bookDemands.jsp").forward(request, response);   
}

jsp中的第一个表单工作得非常好,问题在于第二个表单。每当我使用按钮“book”时,我都会得到一个空指针异常,我不知道为什么,如果我用servlet中的第一个表单注解掉了所有的代码,那么它就不再抛出异常,而且工作正常。
我真的很感谢一些帮助,因为我现在已经花了几个小时在网上寻找解决方案,我仍然非常努力地解决这个问题。
干杯,

iq3niunx

iq3niunx1#

使用request.getparametervalues(“name”)。。其他的也一样,可能当前值为空

相关问题