java - Java JSP Mysql 错误
问题描述
当有人预订房间时,我有一个简单的网页,他可以删除预订。我的数据库中有一个名为:hotel_booking 的模式,具有以下值:
(id 主键)cid,(id)resid,(String)cname,(String)email,(String)arrival_date,(String)departure_date,(int)person,(int)room,(String)type_room,(Text)评论,(int)状态
我有这个代码:
<%@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.
我怎么解决这个问题?谢谢您的帮助!
解决方案
您的问题是,您已经定义了一个名为的隐藏字段res
,但正在以resid
. 更改String id = request.getParameter("resid");
为String id = request.getParameter("res");
它应该可以工作。
正如 Sazzadur Rahaman 所说:永远不要以这种方式附加参数。用一个PreparedStatement
推荐阅读
- vue.js - 如何制作这张桌子?或者如何像这样堆叠固定列?
- azure - 如何将 Azure 应用程序网关请求主机标头发送到 istio 入口网关(Azure 内部 LB)
- javascript - 下拉菜单 Mouseleave 事件应忽略子元素
- php - 使我的表单与字段对齐的 Symfony 问题
- java - 如何捆绑只有一个依赖项的 JAR
- python - 尝试使用 teradataml copy_to_sql 函数上传熊猫数据框
- python - Python将数据保存到文件夹
- reactjs - 在 react-redux 中,将所有内容(图像、个人资料信息、用户信息等)存储在 redux-persist 存储中?
- svg - 如何在圆圈内添加 SVG?
- linux - RUN chmod - 从 dockerfile 构建 docker 期间出错