servlet上的http status 500 null错误

时间:2015-05-16 21:59:05

标签: java servlets

我正在使用servlet来删除sql上的行。我已经设置了一个文本字段,允许输入表的数量并将值传递给deleteHandler.java(servlet)进行检查和删除。我通过此消息遇到HTTP状态500

java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
addHandler.doPost(addHandler.java:47)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

似乎addHandler.doPost遇到了问题(在这种情况下,它返回null)

这是第46到47行的addHandler代码

int tableNo = Integer.parseInt(request.getParameter("tableNo"));
int paxNo = Integer.parseInt(request.getParameter("paxNo"));

delete.html表单提交给deleteHandler,后者处理删除表单中输入的表格数量。与add不同,delete.html只有1个输入,即tableNo,而add有一个额外的paxNo。问题是addHandler如何导致deleteHandler出错?

以下是我的deleteHandler

的代码
//get parameter
    int tableNo = Integer.parseInt(request.getParameter("tableNo"));
//connect to DB
            Connection conn = null;
            String db = "jdbc:mysql://localhost:3306/resto";
            String db_driver = "com.mysql.jdbc.Driver";
            String user = "root";
            String pass = "";
try {

                Class.forName(db_driver);
                conn = DriverManager.getConnection(db, user, pass);

                //read
                PreparedStatement stmt = conn.prepareStatement("delete from reserve where table_No = values(?)");                   
                stmt.setInt(1, tableNo);
                stmt.executeUpdate();
} catch (Exception e) {

}

以下是我的delete.html

的代码
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Delete table</title>
</head>
<body>

<form method="post" action="deleteHandler">
    <label for="studentName">Table No.</label>
    <input type="text" id="tableNo" name="tableNo"/>
    <br/>
    <input type="submit" />
</form>
</body>
</html>

与delete.html类似,这是add.html额外字段

<label for="studentID">pax amount:</label>
     <input type="text" id="paxNo" name="paxNo"/>

这里似乎有什么问题?请帮我解决问题。非常感谢额外的解释。

编辑:提供的链接说它是因为输入文件不是数字而发生的,而在我的代码中,deleteHandler中没有输入该特定代码,即使我输入了一个数字,它仍会显示相同的错误。提供的链接没有解释为什么即使不需要输入值也会发生错误。

0 个答案:

没有答案