Java Web 开发实战:从零开始构建在线图书管理系统
在这个数字化迅速发展的时代,越来越多的实体服务转向了在线平台,图书管理系统便是其中之一。本文将指导你通过 Java Web 技术构建一个简单的在线图书管理系统,从基础开始,让你能够轻松上手并了解相关知识。
项目架构
我们的在线图书管理系统的基本架构如下:
- 前端:使用HTML、CSS、JavaScript进行页面设计
- 后端:使用Java Servlet处理HTTP请求
- 数据库:使用MySQL存储书籍信息
环境搭建
- Java开发环境:安装JDK 8以上的版本。
- Web服务器:使用Apache Tomcat作为我们的服务器。
- 数据库:安装MySQL,并创建一个名为
library
的数据库。
数据库设计
在开始编写代码之前,我们需要设计数据库表。我们可以创建一个名为books
的表,包含以下字段:
CREATE TABLE books (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
author VARCHAR(100) NOT NULL,
publisher VARCHAR(100),
price DECIMAL(10, 2),
stock INT DEFAULT 0
);
这个表格将用来存储图书的基本信息。
编写后端代码
我们将创建一个简单的Java Servlet来处理书籍的信息查询和管理。
BookServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class BookServlet extends HttpServlet {
private Connection getConnection() throws SQLException {
String url = "jdbc:mysql://localhost:3306/library";
String user = "root"; // 数据库用户
String password = "your_password"; // 数据库密码
return DriverManager.getConnection(url, user, password);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Book> books = new ArrayList<>();
String sql = "SELECT * FROM books";
try (Connection conn = getConnection();
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery()) {
while (rs.next()) {
Book book = new Book();
book.setId(rs.getInt("id"));
book.setTitle(rs.getString("title"));
book.setAuthor(rs.getString("author"));
book.setPublisher(rs.getString("publisher"));
book.setPrice(rs.getBigDecimal("price"));
book.setStock(rs.getInt("stock"));
books.add(book);
}
} catch (SQLException e) {
e.printStackTrace();
}
request.setAttribute("books", books);
RequestDispatcher dispatcher = request.getRequestDispatcher("bookList.jsp");
dispatcher.forward(request, response);
}
}
Book.java
为了简化我们的数据处理,创建一个Book
类来表示书籍实体。
import java.math.BigDecimal;
public class Book {
private int id;
private String title;
private String author;
private String publisher;
private BigDecimal price;
private int stock;
// Getters 和 Setters
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getTitle() { return title; }
public void setTitle(String title) { this.title = title; }
public String getAuthor() { return author; }
public void setAuthor(String author) { this.author = author; }
public String getPublisher() { return publisher; }
public void setPublisher(String publisher) { this.publisher = publisher; }
public BigDecimal getPrice() { return price; }
public void setPrice(BigDecimal price) { this.price = price; }
public int getStock() { return stock; }
public void setStock(int stock) { this.stock = stock; }
}
前端展示
创建一个简单的JSP页面bookList.jsp
来展示书籍信息。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>图书列表</title>
</head>
<body>
<h1>图书列表</h1>
<table border="1">
<tr>
<th>ID</th>
<th>书名</th>
<th>作者</th>
<th>出版社</th>
<th>价格</th>
<th>库存</th>
</tr>
<c:forEach var="book" items="${books}">
<tr>
<td>${book.id}</td>
<td>${book.title}</td>
<td>${book.author}</td>
<td>${book.publisher}</td>
<td>${book.price}</td>
<td>${book.stock}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
在这个JSP页面中,我们使用JSTL标签库(需要在项目中导入JSTL)来动态显示数据库中获取到的书籍列表。
启动服务器并测试
- 将项目部署到Tomcat服务器上,确保所有的依赖代码都已正确编写。
- 启动Tomcat服务器。
- 在浏览器中输入
http://localhost:8080/YourProjectName/BookServlet
,即可查看书籍列表。
总结
通过以上步骤,我们从零开始构建了一个简单的在线图书管理系统。虽然这个系统功能较为基础,但它为你理解Java Web开发的流程提供了良好的基础。你可以在此基础上继续扩展,如添加用户管理、书籍搜索、书籍分类等功能,以提升系统的完整性和实用性。