MVC模式介绍:
MVC
即模型Model
、视图View
、控制器Controller
,用一种将业务逻辑、数据、视图分离的方式组织架构代码,通过分离关注点的方式来支持改进应用组织方式,其促成了业务数据Model
从用户界面View
中分离出来,还有第三个组成部分Controller
负责管理传统意义上的业务逻辑和用户输入,通常将MVC
模式看作架构型设计模式。
M: model(模型层), Dao, Service, pojo,util这些都是模型
V: view(视图层): jsp,html....
C: Controller(控制层): Servlet, Controller...
体现的分层概念: V -->C -->M Servlet --> Service-->Dao
- 只能是上层调用下层 Dao -->Service 错误
- 不能跨层调用 Servlet -->Dao 错误
- 每一层使用的技术的核心类,不能出现在其他层
Service层方法: login(HttpServletRequest request, ....) 错误
java在这个MVC模式上. 提出java经典三层模型:
Web层:
Service层:
Dao层:
大型项目分层:
- 先按功能模块分层:
用户模块, 订单模块, 商品模块,物流模块...- 每个模块包含java经典三层模型
用户模块: 订单模块:
|-- web |-- web
|--service |--service
|--dao |--dao
|--pojo |--pojo
|--util |--util
MVC所起的作用:
在前端组件式架构开发,常常将视图、数据、业务逻辑等写在一个模块内,如果组件的内容比较多,容易造成层次的混乱,增加开发与维护的成本,而使用MVC
模式可以将数据层、视图层、控制器层进行分层组织,用以减少耦合。
mvc工作原理:
Model(模型):一个或多个JavaBean对象,用于存储数据。JavaBean主要提供简单的setXXX方法和getXXX方法,在这些方法当中不涉及对数据的具体处理细节,以便增强模式的通用性
View(视图):一个或多个JSP页面。其作用是向控制器提交必要的数据和显示数据。JSP页面可以使用HTML标记Javabean标记以及Java程序片或者Java表达式来显示数据。视图的主要工作就是显示数据,对数据的逻辑操作由控制器负责。
Controller(控制器):一个或者多个Servlet。控制器负责视图和模型之间的交互,控制对用户输入的响应、响应方式和流程;它主要负责两方面的动作,一是把用户的请求分发到相应的模型,二是把模型的改变及时地反映到视图上。
根据视图提交的要求进行数据处理操作,并将有关的结果存储到JavaBean中,然后servlet使用转发或者重定向的方式请求视图中的某个JSP页面显示数据。