Java JSP Mysql错误

Java JSP Mysql错误,java,mysql,database,jsp,Java,Mysql,Database,Jsp,我有一个简单的网页,当有人预订房间时,他可以删除预订。 我在数据库中有一个名为:hotel_booking的模式,该值为: id主键CID、idresid、Stringcname、Stringemail、Stringarrival\u date、StringDeviation\u date、intperson、Introm、Stringtype\u room、Textcomment、intstatus 我有以下代码: <%@page contentType="text/html" page

我有一个简单的网页,当有人预订房间时,他可以删除预订。 我在数据库中有一个名为:hotel_booking的模式,该值为:

id主键CID、idresid、Stringcname、Stringemail、Stringarrival\u date、StringDeviation\u date、intperson、Introm、Stringtype\u room、Textcomment、intstatus

我有以下代码:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
 <%@ page import ="java.sql.*" %>

<% 
String id = request.getParameter("resid");
int dlt=0;
if (dlt!=0)
dlt =Integer.parseInt(id);



    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/HotelReservation","root" ,"123456789");

    Statement st = con.createStatement();;  

    int i = st.executeUpdate("delete from hotel_booking where resid=" +dlt+"");
    if (i != 0) {
        response.sendRedirect("home.jsp");
    } else {
        out.print("Data not deleted successfully");
    }
%>
用于cancel.jsp页面

这是booked.jsp的代码

<%-- 
    Document   : index
    Created on : Feb 27, 2015, 7:39:57 PM
    Author     : OOPs
--%>
<%@ page import="java.sql.*" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
         <link rel="stylesheet" type="text/css" href="home.css">
         <title>JSP Page</title>


<link href="responsiveslides.css" rel="stylesheet" type="text/css"/>
<link href="themes.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="responsiveslides.min.js" type="text/javascript"></script>

    </head>
    <body>

        <h1>your booked detail</h1>
         <%


       try{
            String n=(String)session.getAttribute("sessname");         

       // out.print("Hello "+n);
        Class.forName("com.mysql.jdbc.Driver");
       // out.println("driver loaded");
     Connection  con = DriverManager.getConnection("jdbc:mysql://localhost:3306/HotelReservation","root" ,"123456789");
      //  out.println("Connect");
      Statement  st =  con.createStatement();
      //    out.println("conncetion successfull");


       ResultSet rs = st.executeQuery("select * from hotel_booking where uid = "+n);

       %>


        <%  while(rs.next())
        {

            int id = rs.getInt("cid");
            int res = rs.getInt("resid");
          //  out.println(id);
            String cname  = rs.getString("cname");
           // out.println(cname);
            String email  = rs.getString("email");
            String arrival  = rs.getString("arrival_date");
            String departure  = rs.getString("departure_date");
            int person  = rs.getInt("person");
            int room  = rs.getInt("room");
            String type_room = rs.getString("type_room");



            %> 

            <div class="hotel-block"  style="background-color: #5882FA;padding: 2px 15px 30px;margin-top: -20px; width: 102%; margin-left: -23px;">
                ...........................................................................................................................................................................................................................................................................................
                <h2 class="heading"><label style=" margin-left: 150px; margin-top: 151px;">Name :</label><span  style=" margin-left: 200px;"><%out.println(cname);%></h2> 
                <h2 class="heading"><label style="margin-left: 150px;">Email :</label><span  style=" margin-left: 200px;"><%out.println(email);%></span></h3> 
                <h2 class="heading"><label style="margin-left: 150px;">arrival date :</label><span  style=" margin-left: 100px;"><%out.println(arrival);%></h2>
                <h2 class="heading"><label style="margin-left: 150px;">departure date:</label><span  style=" margin-left: 50px;"><%out.println(departure);%></h2> 
                <h2 class="heading"><label style="margin-left: 150px;">no. of person :</label><span  style=" margin-left: 70px;"><%out.println(person);%></h2>
                <h2 class="heading"><label style="margin-left: 150px;">no. of room :</label><span  style=" margin-left: 100px;"><%out.println(room);%></h2> 
                <h2 class="heading"><label style="margin-left: 150px;">type room:</label><span  style=" margin-left: 100px;"><%out.println(type_room);%></h2>

               <form action='cancel.jsp'>
             <input type='submit' name='cancel' value='Cancel Reservation'>
             <input type="hidden" name="res" value=<%= res %>>
            </form>
           </div>



           <% } }

            catch(Exception e)
                    {

                    }
            out.close();

            %>
    </body>
</html>
如果我试图取消预订,我会出现以下错误:

HTTP Status 500 – Internal Server Error

Type Exception Report

Message An exception occurred processing [/cancel.jsp] at line [8]

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.apache.jasper.JasperException: An exception occurred processing [/cancel.jsp] at line [8]

5: <% 
6: String id = request.getParameter("resid");
7: int dlt;
8: dlt =Integer.parseInt(id);
9: 
10:    
11:     


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:593)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:482)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Root Cause

java.lang.NumberFormatException: null
    java.lang.Integer.parseInt(Integer.java:542)
    java.lang.Integer.parseInt(Integer.java:615)
    org.apache.jsp.cancel_jsp._jspService(cancel_jsp.java:125)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Note The full stack trace of the root cause is available in the server logs.

我怎样才能解决这个问题?谢谢你的帮助

您向服务器发送的具体请求是什么?它应该附加一个resid,例如?resid=

看起来request.getParameterresid在下面的行中返回null

String id = request.getParameter("resid");

旁注:您在查询中添加参数的方式,使您的代码容易受到SQL注入攻击!考虑使用PravaRealSt.< /P> < P>您的问题是,您已经定义了一个名为RES的隐藏字段,但正在将其作为渣打访问。更改字符串id=request.getParameterresid;to String id=request.getParameters;它应该会起作用


正如Sazzadur Rahaman提到的:永远不要以这种方式附加参数。使用PreparedStatement

,因为错误表明您从未给它参数id,因此它无法将不存在的值转换为整数。您认为我该怎么办?我应该删除字符串id吗?由于异常是numberformat,核心问题是,参数resid被传递为null,最终无法转换为int。请尝试检查传递的参数。是的,我应该用preparedStatement实现cose!无论如何,在我的web应用程序中,当有人在hotel\u booking中自动预订房间时,值resid是递增的,它是一个整数值。用户当然也会插入所有数据。现在我想创建一个底部来删除所有行,将隐藏字段更改为resid;浏览器显示我>未成功删除的数据