JavaEE第12讲JavaWEBMVC模式吕海东haidonglu@126.com授课大纲•MVC模式的基本概念•View组件的功能和实现技术。•Control组件的功能和实现技术。•Model组件的功能和实现技术。•MVC中的分层模式。MVC模式的信息管理系统数据库输出设备操作者操作者视图组件控制组件模型组件View组件•职责:与操作者进行交互•功能:(1)提供数据输入的机制。如表单。(2)显示业务数据。1)列表方式2)详细方式Model组件•职责:业务处理。•主要功能:(1)表达业务数据(2)业务数据持久化(3)业务处理方法Control组件•职责:协调View和Mode组件,控制整个系统的流程。•主要功能:(1)取得View提交的数据(2)验证View数据的合法性(形式和业务)(3)View数据的类型转换(4)调用Model业务处理方法(5)保存Model业务数据给View组件(6)导航到指定View组件。JavaEE框架下的MVCJavaEE平台MVC实现•View:JSP+EL+JSTL•Control:Servlet•Model:JavaBeanMVC模式分层结构PresentationLayer(UIO)ControlClass(CO)BusinessLayer(BO)PersistenceLayer(PO/DAO)DataTransferLayer(DTO/VO)每层的设计思想接口实现类本层工厂类客户类面向接口设计原则,使用工厂类替代new对象详细的MVC分层架构UI类控制类控制接口控制工厂类业务实现类业务接口业务工厂类DAO工厂类DAO工厂类DAO接口VO值类View设计top.jsplogin.jspbottom.jsp•HTML•JSP•EL•JSTL控制类设计•Action控制类设计命名:处理功能名称+Action包名:domain.project.action如:com.city.oa.action.LoginAction,Com.city.oa.action.AddUserActionVO/DTO类设计•用于封装表的记录值,每个表1个类。•类对应表,对象对应记录,属性对象字段。•使用关联关系表达类之间的对应关系,与表的外键对应。•每个属性一对get/Set方法。•包:domain.projectname.value•类名:实体类名+”Value”如:com.city.oa.value.UserValuecom.city.oa.value.POValuecom.city.oa.value.EmployeeValueBO类(BusinessObject)•BO接口:•定义BO业务功能•命名:OOA实体名称•包名:domain.project.business•如:com.dashang.erp.business.User•BO实现类:•实现BO接口的功能•命名:OOA实体类Impl•包:domain.project.business.impl•如:com.dashang.erp.business.impl.UserImpl•BO工厂:•命名:BusinessFactory•包:domain.project.business.factoryDAO类(DataAccessObject)设计•DAO接口:定义CRUD方法•命名:OOA实体类名称+DAO•包:domain.project.dao•DAO实现类•命名:OOA实体类+DAOImpl•包:domain.project.dao.impl•如:com.dashang.erp.dao.impl.UserDAOImpl•DAO工厂•命名:DAOFactory•包:com.project.dao.factory