web-crub代码构建流程

Web-crub的代码构建流程
1.1 实体类设计
首先创建实体类,对应数据库表结构。例如 Book.java ,包含书籍的基本属性。
1.2 数据访问层实现

  • 创建Mapper接口:定义数据访问方法,如 BookMapper.java
  • 创建Mapper实现类:实现接口方法,通过MyBatis执行SQL操作,如 BookMapperImpl.java
  • 创建Mapper XML文件:定义SQL语句,如 BookMapper.xml 1.3 业务逻辑层实现
  • 创建Service接口:定义业务逻辑方法,如 BookService.java
  • 创建Service实现类:实现接口方法,调用Mapper层操作数据,如 BookServiceImpl.java 1.4 控制器层实现
    创建Servlet:处理HTTP请求,调用Service层方法,转发到JSP视图,如 BookServlet.java 。使用 @WebServlet 注解配置URL映射。
    1.5 视图层实现
    创建JSP页面:展示数据,如 bookList.jsp 。
    1.6 配置文件
  • mybatis-config.xml :MyBatis配置
  • db.properties :数据库连接配置
  • log4j.properties :日志配置

2. 构建流程

由于这是一个传统的Web项目,没有使用Maven或Gradle等构建工具,构建流程如下:

  1. 编译Java源代码 :

    • 使用IDE(如IntelliJ IDEA)的编译功能
    • 或使用 javac 命令手动编译
  2. 资源文件复制 :

    • 将编译后的 .class 文件复制到 web/WEB-INF/classes/ 目录
    • 将配置文件复制到相应目录
    • 将JSP文件和静态资源文件保持在原位置
  3. 打包部署 :

    • 将整个 web 目录打包为WAR文件
    • 或直接将 web 目录部署到Web服务器(如Tomcat)的 webapps 目录

3. 运行流程

  1. Web服务器启动 :

    • 加载Web应用,初始化Servlet容器
    • 加载 web.xml 配置(虽然本项目中 web.xml 为空,因为使用了 @WebServlet 注解)
  2. 请求处理 :

    • 客户端发送HTTP请求到 /books 路径
    • BookServlet 的 service 方法被调用
    • 设置请求和响应的字符编码
    • 获取当前页码参数
    • 调用 BookService 的 selectAllBypage 方法
  3. 业务逻辑处理 :

    • BookServiceImpl 调用 BookMapper 的 selectAll 方法
    • 封装查询结果到 PageVo 对象
  4. 数据访问 :

    • BookMapperImpl 通过 MyBatisTool 获取SqlSession
    • 执行SQL查询,获取书籍列表
    • 关闭SqlSession
  5. 响应处理 :

    • BookServlet 将 PageVo 对象设置到请求属性中
    • 转发请求到 /WEB-INF/jsp/book/bookList.jsp
    • JSP页面渲染数据并返回给客户端

代码开发流程建议

在开发类似的Web项目时,建议按照以下顺序从底层到上层逐步构建,这样可以确保各层之间的依赖关系清晰,避免出现因依赖未定义而导致的错误。

1. 首先准备配置文件和工具类

配置文件

  • db.properties :配置数据库连接信息(URL、用户名、密码等)
  • mybatis-config.xml :配置MyBatis的全局设置、数据源和Mapper扫描路径
  • log4j.properties :配置日志系统(可选)

工具类

  • MyBatisTool.java :封装MyBatis的SqlSession创建和关闭逻辑,为数据访问层提供支持

2. 实体层(Domain)

先定义实体类,因为其他所有层都需要使用实体类来传递和处理数据。

  • Book.java :根据数据库表结构创建对应的实体类,包含属性和必要的构造方法

3. 分页工具类(可选,但建议提前创建)

如果需要分页功能,先创建分页工具类,因为服务层和控制器层会用到它。

  • PageVo.java :封装分页相关的属性和逻辑

4. 数据访问层(Mapper)

数据访问层依赖实体类,负责与数据库交互。

  1. BookMapper.java :定义数据访问接口,声明需要的方法(如 selectAll() )
  2. BookMapper.xml :配置与接口方法对应的SQL语句
  3. BookMapperImpl.java :实现Mapper接口,调用MyBatis执行SQL操作

5. 服务层(Service)

服务层依赖数据访问层,封装业务逻辑。

  1. BookService.java :定义服务接口,声明业务方法(如 selectAllBypage() )
  2. BookServiceImpl.java :实现服务接口,调用Mapper层方法处理数据,并添加业务逻辑(如分页处理)

6. 控制器层(Servlet)

控制器层依赖服务层,处理HTTP请求和响应。

  • BookServlet.java :继承HttpServlet,处理请求参数,调用服务层方法,转发到视图

7. 视图层(JSP)

视图层依赖控制器层,展示数据给用户。

  • bookList.jsp :接收控制器传递的数据,展示图书列表和分页导航

开发流程说明

为什么要从底层开始?

  1. 依赖关系清晰 :上层依赖下层,底层先完成可以确保上层开发时不会因为依赖未定义而报错
  2. 便于测试 :每完成一层可以单独测试,确保功能正确后再开发上层
  3. 减少重构 :如果先开发上层,可能会因为底层设计不合理而需要大量修改

顺序

  1. 创建 db.properties 和 mybatis-config.xml 配置文件
  2. 实现 MyBatisTool.java 工具类
  3. 创建 Book.java 实体类
  4. 创建 PageVo.java 分页工具类
  5. 定义 BookMapper.java 接口
  6. 配置 BookMapper.xml 文件
  7. 实现 BookMapperImpl.java 类
  8. 定义 BookService.java 接口
  9. 实现 BookServiceImpl.java 类
  10. 开发 BookServlet.java 控制器
  11. 创建 bookList.jsp 视图
posted @ 2026-01-27 21:14  LVjiani  阅读(2)  评论(0)    收藏  举报