java_web/java/com/demo/BookQueryServlet2.java

72 lines
2.2 KiB
Java
Raw Normal View History

2024-12-09 22:17:48 +08:00
package com.demo;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.demo.BookBean;
import javax.sql.DataSource;
import javax.naming.*;
import javax.servlet.annotation.WebServlet;
@WebServlet("/BookQueryServlet2")
public class BookQueryServlet2 extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
Connection dbconn;
public void init() {
try {
Context context = new InitialContext();
DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/demo");
dbconn = ds.getConnection();
} catch(NamingException ne) {
log("数据源查找失败: " + ne);
} catch(SQLException se) {
log("数据库连接失败: " + se);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String bookid = request.getParameter("bookid");
try {
String sql = "SELECT * FROM books WHERE bookid = ?";
PreparedStatement pstmt = dbconn.prepareStatement(sql);
pstmt.setString(1, bookid);
ResultSet rst = pstmt.executeQuery();
if (rst.next()) {
BookBean book = new BookBean();
book.setBookid(rst.getString("bookid"));
book.setTitle(rst.getString("title"));
book.setAuthor(rst.getString("author"));
book.setPrice(rst.getDouble("price"));
book.setPublisher(rst.getString("publisher"));
request.getSession().setAttribute("book", book);
response.sendRedirect("/helloweb/displayBook.jsp");
} else {
response.sendRedirect("/helloweb/error.jsp");
}
rst.close();
pstmt.close();
} catch(SQLException e) {
e.printStackTrace();
response.sendRedirect("/helloweb/error.jsp");
}
}
public void destroy() {
try {
if (dbconn != null && !dbconn.isClosed()) {
dbconn.close();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}