一.MVC设计模式
1.MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
2.MVC可对程序的后期维护和扩展提供了方便,并且使程序某些部分的重用提供了方便。而且MVC也使程序简化,更加直观。
3.控制器controller:对请求进行处理,负责请求转发,servlet
视图层view ,界面设计 jsp
模型model 编写程序的应用功能,实现算法等,数据库管理,处理业务逻辑,封装实体对象,JavaBean
4.现在几乎所有的B/S结构的软件都采用了MVC 设计模式,但MVC模式在B/S结构的软件中并没有完全实现,例如有些并没有事件驱动
二.Javaweb与MVC
1.jsp model 1第一代
JSP Model1是JavaWeb早期的模型,它适合小型Web项目,开发成本低!Model1第一代时期,服务器端只有JSP页面,所有的操作都在JSP页面中,连访问数据库的API也在JSP页面中完成。也就是说,所有的东西都耦合在一起,对后期的维护和扩展极为不利。
2.jsp model 1第二代
JSP Model1第二代有所改进,把业务逻辑的内容放到了JavaBean中,而JSP页面负责显示以及请求调度的工作。虽然第二代比第一代好了些,但还让JSP做了过多的工作,JSP中把视图工作和请求调度(控制器)的工作耦合在一起了。
3. jsp model 2
JSP Model2模式已经可以清晰的看到MVC完整的结构了。
- JSP:视图层,用来与用户打交道。负责接收用来的数据,以及显示数据给用户;
- Servlet:控制层,负责找到合适的模型对象来处理业务逻辑,转发到合适的视图;
- JavaBean:模型层,完成具体的业务工作,例如:开启、转账等。
三.javaweb经典三层架构
我们常说的三层框架是javaweb提出的,也就是javaweb独有的
所谓三层是 表述层(WEB) 业务逻辑层(business logic) 数据访问层(Data Acess)
(1)web层:包含jsp,servlet等与web相关的内容
(2)业务层:只关心业务逻辑
(3)数据层:封装了对数据库访问细节
注意事项: 在业务层中不能出现JavaWeb API,例如request、response等。也就是说,业务层代码是可重用的,甚至可以应用到非Web环境中。业务层的每个方法可以理解成一个功能,例如转账业务方法。业务层依赖数据层,而Web层依赖业务层