优化韩顺平2011 Servlet笔记:MVC模式与数据库操作重构

5星 · 超过95%的资源 需积分: 3 9 下载量 200 浏览量 更新于2024-07-27 收藏 560KB DOC 举报
韩顺平在2011年的Servlet笔记文档中详细探讨了如何改进一个用户管理系统,以提升代码质量和遵循MVC(Model-View-Controller)设计模式。原系统存在以下问题: 1. 代码重复:在LoginCl.java和ManageUser.java文件中,由于业务逻辑相似,存在大量的重复代码,这不仅降低了代码复用性,也增加了维护难度。 2. 层次关系不清晰:整个框架结构混乱,缺乏清晰的模块划分,使得代码难以理解和管理。 3. 缺乏优雅性和可读性:代码编写风格不规范,导致可读性差,不利于团队协作和后期扩展。 为了解决这些问题,韩顺平提出以下指导思想和具体实施步骤: **指导思想:** - **业务逻辑与界面分离**:将处理业务逻辑的代码从视图层独立出来,提高代码的模块化。 - **代码抽象与封装**:创建工具类,专门负责数据库的连接和操作,减少业务代码的耦合。 **具体方法:** - **领域模型与服务类**:为每个数据库表创建对应的domain类(如Users类),代表数据实体,同时创建Service类(如UserService类)进行数据操作,实现数据和操作的分离。 - **分页操作**:在UserService类中,封装了按页获取用户数据的方法,返回ArrayList而非ResultSet,这样有利于资源管理,便于对象操作。 **上机练习:** - **MVC模式重构**:将登录功能改造为MVC模式,首先实现分页功能,通过定义控制器来处理不同类型的请求(如add、delete、update),并在请求中包含特定的type参数。 - **优化数据传递**:在跳转到修改用户界面时,提供两种选择: - **一次性传递所有数据**:虽然减少数据库查询次数,但增加了网络传输的数据量。 - **仅传递用户ID**:控制器负责查询数据库以获取其他用户信息,减小网络开销但增加数据库查询。 **添加用户功能**: - **使用序列化**:为用户ID设置自动增长,使用Oracle中的序列机制来确保唯一性。 通过这些改进,系统不仅提高了代码的可读性和可维护性,还遵循了MVC设计模式,使得架构更加清晰,有利于团队协作和未来功能扩展。