韩顺平老师的Servlet笔记深入讲解了如何优化现有的用户管理系统,以解决现有结构中的问题。首先,他分析了当前系统存在的问题,包括代码冗余、逻辑混乱以及缺乏清晰的层次结构和良好的代码风格。这些问题主要表现在LoginCl.java和ManageUser.java两个文件中,它们都直接与数据库交互,导致代码不优雅且难以维护。
为了解决这些问题,韩顺平提倡采用MVC(Model-View-Controller)模式,这是一种将业务逻辑、界面展示和用户交互分离的设计原则。具体实施步骤如下:
1. 业务逻辑与界面分离:将数据库连接和操作等常用代码封装到单独的工具类中,提高代码复用性和模块化。
2. 领域模型与服务层分离:每个数据库表对应一个domain类(如Users类)来表示数据,同时有一个Service类(如UserService类)来封装对相应表的操作。这体现了数据和操作的分离,使得代码更易于理解和维护。
3. 分页与数据访问:在UserService类中,通过封装方法如`getUsersByPage()`,将数据库结果集转化为ArrayList,便于面向对象编程,同时确保及时关闭数据库资源。
4. CRUD操作:用户管理系统中的CRUD(Create、Read、Update、Delete)操作被统一控制在一个或多个控制器中,以保持逻辑清晰。通过在请求中携带额外的参数(如type=del、type=add、type=update),控制器可以根据这些类型来决定执行何种操作。
5. 减少数据库查询次数:在修改用户界面时,可以选择传递用户ID和其他必要信息(虽然增加了网络开销),以减少数据库查询次数。另一种方法是只传递ID,然后在控制器内部查询,但这样可能需要多次数据库操作。
6. 用户管理功能:系统仅保留与cookie和session相关的功能,其他CRUD操作(如添加用户)都实现了MVC设计,包括用户ID的自增长策略,以及在Oracle数据库中创建对应的表结构。
通过这些步骤,韩顺平老师的Servlet笔记提供了重构现有用户管理系统的方法,使得代码更加模块化、可维护,并提高了系统的整体架构和性能。上机练习鼓励读者逐步应用这些原则,以提升自己的编程技能和理解。