基于jsp的图书查询实现
时间: 2023-12-11 18:02:23 浏览: 31
基于JSP的图书查询实现,可以分为以下几个步骤:
1. 创建数据库:首先需要创建一个数据库,用于存储图书信息,包括图书名称、作者、出版社、价格等。
2. 创建JSP页面:创建一个JSP页面,用于输入图书信息进行查询,包括图书名称、作者等。可以使用HTML表单进行输入,也可以使用JSTL标签库进行输入。
3. 编写Servlet:编写一个Servlet,用于处理JSP页面的请求,连接数据库进行查询操作,并将查询结果返回给JSP页面进行显示。
4. 显示查询结果:在JSP页面中显示查询结果,可以使用JSTL标签库进行显示,也可以使用JSP脚本进行显示。
以下是一个简单的基于JSP的图书查询实现的示例代码:
1. 数据库表结构定义:
```sql
CREATE TABLE `book` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`author` varchar(255) NOT NULL,
`publisher` varchar(255) NOT NULL,
`price` double NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
2. JSP页面代码:
```html
<html>
<head>
<title>图书查询</title>
</head>
<body>
<h1>图书查询</h1>
<form action="search" method="post">
<p>
<label>图书名称:</label>
<input type="text" name="name" />
</p>
<p>
<label>作者:</label>
<input type="text" name="author" />
</p>
<input type="submit" value="查询" />
</form>
</body>
</html>
```
3. Servlet代码:
```java
import java.io.IOException;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet("/search")
public class BookSearchServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取查询条件
String name = request.getParameter("name");
String author = request.getParameter("author");
// 连接数据库进行查询
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
String sql = "select * from book where 1=1";
if (name != null && !"".equals(name.trim())) {
sql += " and name like ?";
}
if (author != null && !"".equals(author.trim())) {
sql += " and author like ?";
}
ps = conn.prepareStatement(sql);
int index = 1;
if (name != null && !"".equals(name.trim())) {
ps.setString(index++, "%" + name + "%");
}
if (author != null && !"".equals(author.trim())) {
ps.setString(index++, "%" + author + "%");
}
rs = ps.executeQuery();
// 将查询结果存储到request中,用于在JSP页面中显示
request.setAttribute("result", rs);
request.getRequestDispatcher("/result.jsp").forward(request, response);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
4. 显示查询结果的JSP页面代码:
```html
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>查询结果</title>
</head>
<body>
<h1>查询结果</h1>
<table border="1">
<tr>
<th>图书名称</th>
<th>作者</th>
<th>出版社</th>
<th>价格</th>
</tr>
<c:forEach var="row" items="${requestScope.result}">
<tr>
<td><c:out value="${row.name}" /></td>
<td><c:out value="${row.author}" /></td>
<td><c:out value="${row.publisher}" /></td>
<td><c:out value="${row.price}" /></td>
</tr>
</c:forEach>
</table>
</body>
</html>
```
以上代码可以实现一个简单的基于JSP的图书查询功能。当用户输入图书名称和作者信息后,点击查询按钮,Servlet会连接数据库进行查询,并将查询结果存储到request中,转发到显示查询结果的JSP页面进行显示。