html表单输入字段向mysql数据库添加空值

ht4b089n  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(531)

我有下面的html表单,用户可以在其中预订房间。我正试图获取用户在jsp代码中输入的数据,如图所示,但是数据库中的所有值都被添加为null,除了“user\u email”字段,该字段作为servlet发送的属性。我的代码有问题吗?如果是这样,我如何从这个表单的输入字段中获取值并将它们提交给下面的jsp代码。

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1" import = "com.user.*"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html>
  4. <html>
  5. <head>
  6. <meta charset="ISO-8859-1">
  7. <title>Reservation</title>
  8. </head>
  9. <body>
  10. <form action="#">
  11. <center>
  12. <h3>Reservation</h3>
  13. </center>
  14. <table align="center" border="1">
  15. <tr>
  16. <td colspan="4" align="center">Please complete your reservation</td>
  17. </tr>
  18. <tr>
  19. <td>Arrival Date</td>
  20. <td><select name="day" required>
  21. <option value="">--Day--</option>
  22. <option value="01">1</option>
  23. <option value="02">2</option>
  24. <option value="03">3</option>
  25. <option value="04">4</option>
  26. <option value="05">5</option>
  27. <option value="06">6</option>
  28. <option value="07">7</option>
  29. <option value="08">8</option>
  30. <option value="09">9</option>
  31. <option value="10">10</option>
  32. <option value="11">11</option>
  33. <option value="12">12</option>
  34. <option value="13">13</option>
  35. <option value="14">14</option>
  36. <option value="15">15</option>
  37. <option value="16">16</option>
  38. <option value="17">17</option>
  39. <option value="18">18</option>
  40. <option value="19">19</option>
  41. <option value="20">20</option>
  42. <option value="21">21</option>
  43. <option value="22">22</option>
  44. <option value="23">23</option>
  45. <option value="24">24</option>
  46. <option value="25">25</option>
  47. <option value="26">26</option>
  48. <option value="27">27</option>
  49. <option value="28">28</option>
  50. <option value="29">29</option>
  51. <option value="30">30</option>
  52. <option value="31">31</option>
  53. </select>
  54. <select name="month" required>
  55. <option value="">--Month--</option>
  56. <option value="01">Jan</option>
  57. <option value="02">Feb</option>
  58. <option value="03">Mar</option>
  59. <option value="04">Apr</option>
  60. <option value="05">May</option>
  61. <option value="06">Jun</option>
  62. <option value="07">Jul</option>
  63. <option value="08">Aug</option>
  64. <option value="09">Sep</option>
  65. <option value="10">Oct</option>
  66. <option value="11">Nov</option>
  67. <option value="12">Dec</option>
  68. </select>
  69. <select name="year" required>
  70. <option value="">--Year--</option>
  71. <option value="2018">2018</option>
  72. <option value="2019">2019</option>
  73. <option value="2020">2020</option>
  74. <option value="2021">2021</option>
  75. </select></td>
  76. </tr>
  77. <tr>
  78. <td>Number of rooms</td>
  79. <td colspan="2"><input type="text" name="roomNo" id="roomNos" required>
  80. </td>
  81. </tr>
  82. <tr>
  83. <td>Number of nights</td>
  84. <td colspan="2"><input type="text" name="nights" id="nightsNos" required>
  85. </td>
  86. </tr>
  87. <tr>
  88. <td>Room type:</td>
  89. <td><select name="rType" required>
  90. <option value="Single"> Single</option>
  91. <option value="Double"> Double</option>
  92. <option value="Triple"> Triple</option>
  93. <option value="Suite"> Suite</option>
  94. </select></td>
  95. </tr>
  96. </table><br>
  97. <center><input type="submit" value="Add reservation" name="button" ></center>
  98. </form>
  99. <%
  100. String d = request.getParameter("day");
  101. String m = request.getParameter("month");
  102. String y = request.getParameter("year");
  103. String r = request.getParameter("roomNo");
  104. String n = request.getParameter("nights");
  105. String rt = request.getParameter("rType");
  106. String em = String.valueOf(request.getAttribute("email"));
  107. ReservationDb rd = new ReservationDb();
  108. rd.insert(d, m, y, r, n, rt, em);
  109. %>
  110. </body>
  111. </html>

//插入函数

  1. public void insert(String d, String m, String y, String r, String n, String rt, String em) {
  2. Connection connection = null;
  3. PreparedStatement ppStm = null;
  4. try {
  5. connection = ConnectionConfiguration.getConnection();
  6. ppStm = connection.prepareStatement("INSERT INTO reservations (res_day,res_month,res_year,no_rooms,"
  7. + "no_nights,room_type,user_email)"
  8. + "VALUES (?,?,?,?,?,?,?)");
  9. int count = 1;
  10. ppStm.setString(count++, d);
  11. ppStm.setString(count++, m);
  12. ppStm.setString(count++, y);
  13. ppStm.setString(count++, r);
  14. ppStm.setString(count++, n);
  15. ppStm.setString(count++, rt);
  16. ppStm.setString(count++, em);
  17. ppStm.executeUpdate();
  18. } catch(Exception e) {
  19. e.printStackTrace();
  20. } finally {
  21. if (ppStm != null){
  22. try {
  23. ppStm.close();
  24. } catch (SQLException e) {
  25. // TODO Auto-generated catch block
  26. e.printStackTrace();
  27. }
  28. }
  29. if (connection != null) {
  30. try {
  31. connection.close();
  32. } catch (SQLException e) {
  33. // TODO Auto-generated catch block
  34. e.printStackTrace();
  35. }
  36. }
  37. }
  38. }
agyaoht7

agyaoht71#

似乎您正在同一个定义输入表单的jsp页面上读取参数。
这没有错,但是在读取参数之前,您没有检查表单是否已提交。
简单的解决方案是:
检查请求中是否存在特定参数,
如果存在,则读取所有其他参数。
然后执行插入操作。
如果不存在,则不读取任何其他参数
不执行插入操作。
例子:

  1. <%
  2. String operation = request.getParameter("operation");
  3. if ( operation != null and operation.equals( "addreservation" ) )
  4. {
  5. String d = request.getParameter("day");
  6. String m = request.getParameter("month");
  7. String y = request.getParameter("year");
  8. String r = request.getParameter("roomNo");
  9. String n = request.getParameter("nights");
  10. String rt = request.getParameter("rType");
  11. String em = String.valueOf(request.getAttribute("email"));
  12. ReservationDb rd = new ReservationDb();
  13. rd.insert(d, m, y, r, n, rt, em);
  14. }
  15. else
  16. {
  17. // ignore reading parameters
  18. }
  19. ;
  20. %>
展开查看全部
nwwlzxa7

nwwlzxa72#

  1. # Add this line in jsp page #
  2. <tr><td>Email</td><td><input name="email" required></td></tr>
  3. # Modify this line #
  4. String em = String.valueOf(request.getAttribute("email"));
  5. # Change with this code #
  6. String em = request.getParameter("email");
  7. # Kindly modify this and add condition like above answer.#

相关问题