修改图书(Servlet: EditBookServlet) 在这个Servlet中,需要通过JDBC连接数据库,查询出要修改的图书的信息,并且展示到editBook.jsp页面上。用户修改完成后,需要将修改后的图书信息更新到数据库中,并且需要对用户输入的数据进行合法性验证。修改完成后,将结果放入到request中,然后转发到bookList.jsp页面展示。
时间: 2023-06-14 13:07:06 浏览: 234
好,那我来给你讲解一下如何实现这个功能。
首先,在 EditBookServlet 中需要获取到用户要修改的图书的 ID,可以通过 request.getParameter() 方法获取到。然后,通过 JDBC 连接数据库,查询出该图书的信息,并将其存储在一个 Book 对象中。
接下来,将这个 Book 对象传递给 editBook.jsp 页面,展示给用户进行修改。在 editBook.jsp 页面中,需要将 Book 对象中的各个属性展示出来,让用户进行修改。
当用户提交修改后,需要将修改后的数据进行合法性验证。例如,需要验证书名、作者、价格等是否为空,价格是否为数字等。
如果数据验证通过,就需要将修改后的数据更新到数据库中。可以通过 JDBC 的 PreparedStatement 对象来完成这个功能。在更新数据之后,将结果存储在 request 中,然后转发到 bookList.jsp 页面展示。
如果数据验证未通过,就需要将错误信息返回给用户,并展示在页面上,让用户重新进行修改。
以上就是实现修改图书的大致流程,具体实现细节可以参考以下代码示例:
```java
// EditBookServlet.java
public class EditBookServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取要修改的图书的 ID
int bookId = Integer.parseInt(request.getParameter("bookId"));
// 通过 JDBC 连接数据库,查询出要修改的图书的信息
BookDao bookDao = new BookDao();
Book book = bookDao.getBookById(bookId);
// 将查询到的 Book 对象传递给 editBook.jsp 页面
request.setAttribute("book", book);
request.getRequestDispatcher("/editBook.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取用户提交的图书信息
int bookId = Integer.parseInt(request.getParameter("bookId"));
String title = request.getParameter("title");
String author = request.getParameter("author");
String priceStr = request.getParameter("price");
// 对用户输入的数据进行合法性验证
if (title == null || title.trim().equals("") ||
author == null || author.trim().equals("") ||
priceStr == null || priceStr.trim().equals("")) {
request.setAttribute("error", "请输入完整的图书信息");
doGet(request, response);
return;
}
double price;
try {
price = Double.parseDouble(priceStr);
} catch (NumberFormatException e) {
request.setAttribute("error", "价格必须为数字");
doGet(request, response);
return;
}
// 更新数据库中的图书信息
BookDao bookDao = new BookDao();
Book book = new Book(bookId, title, author, price);
bookDao.updateBook(book);
// 将结果存储在 request 中,然后转发到 bookList.jsp 页面展示
request.setAttribute("success", "修改图书信息成功");
request.getRequestDispatcher("/bookList.jsp").forward(request, response);
}
}
```