Java EE系列(十)——MVC模式与MVC框架

今天peter xiao和大家一起学习Java EE中的一个重要部分——MVC模式与MVC框架。在后端的面试中,面试官也会常常提到MVC,那么MVC究竟是什么呢?

一、MVC模式

MVC,顾名思义,由以下三个部分组成:

M:Model——模型 javaBean(实体类):封装数据

V:View——视图 jsp:单纯进行页面的显示

C:Controller——控制器 Servelt:获取数据--对数据进行封装-传递数据-指派显示的jsp页面

其大致的处理流程是:首先由客户端发送请求,控制层接收并处理请求,再通过model层与数据库进行数据交互,然后控制层将交互得到的数据转发给视图层,最后视图层将得到的数据封装成视图页面返回给客户端用户。

二、Java EE的三层架构

 JavaEE三层架构分为表示层、业务逻辑层、数据访问层,通过三层架构对软件系统进行分模块处理。

表示层(web层):负责接收客户端用户的请求,并返回对应数据展示视图。相当于MVC中的V和C,但这里的C只进行请求的接收、处理交给业务逻辑层

业务逻辑层(service层):对表示层传递过来的请求进行业务逻辑处理和运算,并返回处理结果给表示层

数据访问层(dao层):与数据库进行交互,将业务逻辑层所需的数据处理与数据库数据进行同步,用于对数据库表进行增、删、改、查

 

 三层架构与MVC:

两者本为不同领域下的设计模式,并无直接关联。三层架构是典型的架构模式,将产品的开发细分为三层,这么做的好处是能够让每个人都能发挥自己的专长。比如前端工程师能专注页面的设计,如何吸引用户,而不用在乎业务逻辑的实现。数据库工程师,又可以专注数据库的处理,使其变得高效,而不必关注如何展示。而MVC是表现模式(Presentation Pattern),是为了让HTML代码和业务逻辑分开,使代码清晰(el表达式的引入也是为了这个原因),但在某种意义上,也是将功能进行分化。

三、MVC框架

MVC框架之Spring MVC概述:

Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。

SpringMVC的主要组件:

1. 前端控制器 DispatcherServlet(不需要程序员开发)

作用:接收请求、响应结果,相当于转发器,有了DispatcherServlet 就减少了其它组件之间的耦合度。

2. 处理器映射器HandlerMapping(不需要程序员开发)

作用:根据请求的URL来查找Handler

3. 处理器适配器HandlerAdapter

注意:在编写Handler的时候要按照HandlerAdapter要求的规则去编写,这样适配器HandlerAdapter才可以正确的去执行Handler。

4. 处理器Handler(需要程序员开发)

5. 视图解析器 ViewResolver(不需要程序员开发)

作用:进行视图的解析,根据视图逻辑名解析成真正的视图(view

6. 视图View(需要程序员开发jsp)

Spring MVC的执行流程:

1.发起请求到前端控制器

2.前端控制器请求HandlerMapping查找 Handler,可以根据xml配置、注解进行查找

3.处理器映射器HandlerMapping向前端控制器返回Handler

4.前端控制器调用处理器适配器去执行Handler

5.处理器适配器去执行Handler

6.Handler执行完成给适配器返回ModelAndView

7.处理器适配器向前端控制器返回ModelAndView,ModelAndView是springmvc框架的一个底层对象,包括Model和view

8.前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(jsp)

9.视图解析器向前端控制器返回View

10.前端控制器进行视图渲染,视图渲染将模型数据(在ModelAndView对象中)填充到request域

11.前端控制器向用户响应结果

Spring MVC的优点:

1. 可以支持各种视图技术,而不仅仅局限于JSP;

2. 可以与Spring框架集成(如IoC容器、AOP等);

3. 拥有清晰的角色分配:分别有前端控制器(dispatcherServlet) , 处理器映射(handlerMapping), 处理器适配器(HandlerAdapter), 视图解析器(ViewResolver)等角色。

关于MVC设计模式的学习在今天就到这里,我们下一篇博客见,bye~ 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值