1.1 传统的MVC开发模式
在介绍前后端分离开发模式前,回顾一下在进行Java Web项目开发时所选择的开发模式。在初学Java Web开发时,通常使用JSP+Servlet完成前端视图和后端业务逻辑的开发,这种开发模式属于Model1模式,虽然实现了逻辑功能和显示功能的分离,但是视图层和控制层都是由JSP或其他后端的模板引擎技术实现的,即视图层和控制层并没有实现分离。随着学习的深入,以及开始渐渐熟悉企业应用开发,开发人员渐渐地摒弃这种技术选型,开始在项目中使用若干开源框架。常用的框架组合有Spring+Struts/Spring MVC+Hibernate/Mybatis等。框架的优越性及良好的封装性使得这些开发框架组合迅速成为各个企业开发中的不二之选,这些框架的出现也减少了开发者的重复编码工作,简化开发,加快开发进度,降低维护难度,随之而火热的是这些技术框架背后的开发模式,即MVC开发模式,它是为了克服Model1的不足而设计的。
MVC的具体含义是Model+View+Controller,即模型层+视图层+控制层,如图1-1所示。
Model(模型层):常常使用JavaBean编写它,接收视图层请求的数据,之后进行相应的业务处理并返回最终的处理结果。它负担的责任最为核心,利用JavaBean具有的特性实现了代码的重用和扩展,并且维护方便。
View(视图层):代表和用户交互的界面,负责数据的采集和展示,通常由JSP实现。
Controller(控制层):从用户端接收请求,之后将请求传递给模型层并告诉模型层应该调用什么功能模块来处理该请求,它能够协调视图层和模型层之间的工作,起到中间枢纽的作用,一般交由Servlet实现。
图1-1 MVC开发模式简图
同时,项目开发在进行模块分层时也会分为三层:控制层、业务层和持久层。控制层负责接收参数、调用相关业务层、封装数据,以及路由并将数据渲染到JSP,并在JSP中将后台的数据展现出来。开发者对这种开发模式十分熟悉,不管是企业开发还是个人项目的搭建,这种开发模式逐渐成为开发者的首选。