Java EE的分层:
实体层(POJO):由POJO(Plain Old Java Object,普通的传统Java对象)组成,这些对象代表系统的实体,通常与数据库中的表对应,主要作用是将数据保存起来,即持久化数据,一般保存在数据库或文件中。
数据访问层(DAO):由DAO(Data Access Object)组件组成,这些DAO组件提供对实体化对象的创建、查询、删除和修改的操作。
业务逻辑层(Service):由业务逻辑对象组成,用于实现系统所需要的业务逻辑方法。
控制器层(Controller):由控制器组成,用于响应用户请求,并调用业务逻辑组件的对应业务方法处理用户请求,然后根据处理结果转发到不同的表现层组件。
表现层(View):由页面(如JSP、HTML)或其他视图组件组成,负责收集用户请求,并显示处理结果。
为了框架的可扩展性,各层组件之间需要以松散的方式耦合在一起而不能以硬编码方式耦合。层与层的组件之间应符合面向接口编程的原则,使各层之间的依赖性仅仅在接口层次。
|--->DAO对象1--->实体对象1
关系:表现层组件--->控制器--->业务逻辑对象|--->DAO对象2--->实体对象2
|--->DAO对象3--->实体对象3
Model1:
Java平台的动态网站编程技术在早起是model1形式:整个网站应用主要由JSP页面组成,JSP页面接收并处理客户端请求,辅助以少量的JavaBean完成数据库的连接、访问等特定的重复操作。
model1体系中,JSP页面负责响应用户请求并将处理信息结果返回给用户,JSP即负责业务流程控制,又要负责提供表示层数据,同时充当视图和控制器。
局限性:JSP页面身兼View和Controller两种角色,控制逻辑和表现逻辑混杂在一起,从而导致代码的重用性太低,增加了应用的扩展和维护的难度。
Model2:
model2模式下,JSP继续实现视图的功能,而控制器的功能用servlet技术实现,模型功能用JavaBean技术实现。
JSP和servlet这两种技术各自的突出优点,由JSP生成表示层的内容,Servlet完成对业务逻辑的处理。在此,Servlet充当控制器的角色,负责处理用户请求,创建JSP网页需要使用的JavaBean对象,根据用户请求选择合适的JSP页面返回给用户。在JSP页面内没有处理逻辑,只承担检索原先由Servlet创建的JavaBean对象,从servlet中提取动态内容插入到静态模板中。
MVC思想:
MVC(Model--View--Controller)是软件开发的一种设计模式,即把一个应用的输入、处理、输出流程按照模型层(Model)、视图层(View)、控制层(Controller)的方式进行划分。主要目的是将模型层和视图层的代码分离,从而使同一个应用可以使用不同的表现形式,只需要通过控制层确保两者的更新同步即可。
1、模型层:
是对业务流程/状态的处理以及业务规则的指定。业务流程的处理过程对其他层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计师MVC最主要的核心。
2、视图层
代表用户交互界面,对于web来说,可以概括为前台页面。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,而不包括视图上的业务流程的处理。业务模型的处理交于模型层处理。
3、控制层
从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。控制层就像一个分发器,对于选择的模型和视图以及需要完成的用户请求。控制层并不做任何的数据处理。它也就是后台。
它们之间的关系:
MVC设计思想的优点:
<1、低耦合性,提高了应用的可扩展性和可维护性
<2、高重用性和可适用性
<3、有利于软件工程化管理