javaee在数据库中建立表T_BOOK,它包含图书ID、图书名称,图书价格。 1、编写图书模糊查询界面,输入图书名称的模糊资料,显示查询的图书ID,名称和价格。要求提交给Servlet来处理
时间: 2024-03-24 13:36:43 浏览: 18
好的,我会尽力回答您的问题。首先,需要编写一个简单的HTML表单,让用户输入模糊查询的图书名称,然后将其提交给Servlet来处理。以下是一个示例HTML表单:
```
<!DOCTYPE html>
<html>
<head>
<title>图书模糊查询</title>
</head>
<body>
<h1>图书模糊查询</h1>
<form action="BookQueryServlet" method="post">
<label for="bookName">图书名称:</label>
<input type="text" id="bookName" name="bookName">
<input type="submit" value="查询">
</form>
</body>
</html>
```
在这个表单中,我们使用了一个文本框和一个提交按钮。当用户点击“查询”按钮时,表单将被提交到名为“BookQueryServlet”的Servlet来处理。
接下来,我们需要编写一个Servlet来处理这个表单。在这个Servlet中,我们将从表单中获取输入的图书名称,并使用它来查询数据库中的图书信息。以下是一个示例Servlet代码:
```
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/BookQueryServlet")
public class BookQueryServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置响应内容类型
response.setContentType("text/html;charset=UTF-8");
// 获取用户输入的图书名称
String bookName = request.getParameter("bookName");
// 连接数据库并查询图书信息
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL=false", "root", "123456");
String sql = "SELECT id, name, price FROM T_BOOK WHERE name LIKE ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "%" + bookName + "%");
rs = pstmt.executeQuery();
// 显示查询结果
PrintWriter out = response.getWriter();
out.println("<html><head><title>查询结果</title></head><body>");
out.println("<h1>查询结果</h1>");
out.println("<table border=\"1\"><tr><th>图书ID</th><th>图书名称</th><th>图书价格</th></tr>");
while (rs.next()) {
out.println("<tr><td>" + rs.getInt("id") + "</td><td>" + rs.getString("name") + "</td><td>" + rs.getDouble("price") + "</td></tr>");
}
out.println("</table>");
out.println("</body></html>");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
在这个Servlet中,我们首先获取了用户输入的图书名称,然后使用它来查询数据库中的图书信息。查询结果将被显示在一个HTML表格中,并发送回到用户的浏览器中。
请注意,这个示例中使用的是MySQL数据库。如果您使用的是其他数据库,您需要使用相应的JDBC驱动程序和连接字符串来连接数据库。
希望这个示例能够帮助您解决问题。如果您有任何其他问题,请随时问我。