在Java Web开发领域,Struts和JSP是两把利器。Struts作为MVC模式的一种实现,主要负责控制层;而JSP则用于展示层。这两者结合,可以实现一个功能完善、结构清晰的Web应用。本文将围绕Struts与JSP的增删改查(CRUD)实例,为大家详细讲解如何实现一个简单的Web项目。
1. 项目背景
为了让大家更好地理解本文内容,我们先来构建一个简单的项目背景。假设我们需要开发一个图书管理系统,该系统具有以下功能:

- 查询图书信息:用户可以输入书名、作者或出版社,查询相关图书。
- 添加图书信息:管理员可以添加新的图书信息。
- 修改图书信息:管理员可以对现有图书信息进行修改。
- 删除图书信息:管理员可以删除不再需要的图书信息。
2. 环境搭建
在开始之前,我们需要搭建一个开发环境。以下是所需软件及版本:
- Java:JDK 1.8
- IDE:IntelliJ IDEA 或 Eclipse
- 服务器:Tomcat 9.0
- 框架:Struts 2.5.16、Hibernate 5.4.11、MySQL 5.7
3. 项目结构
项目结构如下:
```
src
├── com
│ └── myapp
│ ├── action
│ │ ├── BookAction.java
│ │ └── BookListAction.java
│ ├── dao
│ │ └── BookDao.java
│ ├── entity
│ │ └── Book.java
│ └── struts.xml
├── webapp
│ ├── css
│ ├── js
│ ├── img
│ ├── index.jsp
│ ├── bookList.jsp
│ ├── addBook.jsp
│ └── editBook.jsp
└── pom.xml
```
4. 实现步骤
4.1 创建实体类
我们需要创建一个实体类`Book.java`,用于表示图书信息:
```java
package com.myapp.entity;
public class Book {
private Integer id;
private String name;
private String author;
private String publisher;
// 省略getter和setter方法
}
```
4.2 创建数据访问层
接下来,我们需要创建一个数据访问层`BookDao.java`,用于实现图书信息的增删改查操作:
```java
package com.myapp.dao;
import com.myapp.entity.Book;
import java.util.List;
public interface BookDao {
List
void addBook(Book book);
void updateBook(Book book);
void deleteBook(Integer id);
}
```
4.3 创建业务逻辑层
然后,我们需要创建一个业务逻辑层,用于处理具体的业务需求。在这个例子中,我们只需要实现一个`BookAction.java`类:
```java
package com.myapp.action;
import com.myapp.dao.BookDao;
import com.myapp.entity.Book;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class BookAction {
private BookDao bookDao = new BookDao();
public String list(HttpServletRequest request, HttpServletResponse response) {
List
request.setAttribute("







