MVC三层框架
1、为什么要使用MVC
用户通过直接访问控制层或者视图层,控制层或视图层就可以直接操作数据库。
-
控制层以Servlet为例,有如下功能:
- 接受用户的请求
- 响应给客户端内容
- 重定向或者转发
-
视图层以JSP为例,有如下功能:
- 展示数据
- 提供可以供我们操作的请求
但JSP的本质也是Servlet,且Servlet和Jsp都可以写Java代码,所以访问控制层与访问视图层都是一样的。因此为了易于维护和使用,规定其各自的职责,Servlet专注与处理请求,以及控制视图跳转,Jsp专注与展示数据;
由于控制层访问数据库的JDBC操作也需要控制层自己来实现。
这样控制层的就实现:处理请求、响应、视图跳转、处理JDBC、处理业务代码、处理逻辑代码等。
弊端:程序非常臃肿,且不利于维护。
经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心的计划和不断的尝试。
MVC从根本上强制性的将它们分开
2、什么是MVC
- M 代表 模型(Model)模型就是数据集合,如dao和Bean。
- V 代表 视图(View)其实就是网页,JSP,用来展示模型中的数据。
- C 代表 控制器(controller)控制器在这个例子的,Servlet就是充当控制器的角色,把Hero对象,显示在JSP上。控制器的作用就是把不同的数据(Model),显示在不同的视图(View)上。
对于Serblet和Jsp的例子中就形成了如下框架:
将与数据相关的操作请求形成一个Service(业务层)与Dao层通过JavaBean实体类来进行数据的交互等操作形成Model。
功能如下:
- Model:控制业务操作(Service)、数据持久层 CRUD(Dao)。
- Controller:接收用户的请求(参数、Session信息)、递交给业务层处理数据、视图跳转。
- View:展示数据模型、提供用户操作。
以用户登录为例: