(1)什么是mvc?是一种经典的软件分层思想把软件按照业务层,视图层,控制层的分离,实现解耦便于开发维护。
mvc是一种软件架构模式,核心思想是将一个软件划分成三种不同类型的模块,分别是:
m(model模型):业务逻辑处理。
v(view视图):用户交互(提供用户操作的界面;将数据以合适的方式展现出来)。
c(controller控制器):负责协调模型和视图(视图向控制器发送请求,控制器选择调用合适的模型来处理;模型返回的处理结果 也是给控制器,由控制器选择相应的视图来展现)。
(2)spring mvc简介
是一个mvc框架,简化基于mvc架构的web应用的开发。spring mvc提供了一个控制器,我们只需要开发出相应的模型和视图。
注:
a.不再需要写控制器(mainServlet)了,spring mvc提供了一通用的控制器。
b.可以将java类(模型(model))将交spring容器来管理,方便解耦。
c.提供了很多有用的jsp标签。
(3)五大组件
a.DispatcherServlet(前端控制器):
接受请求,根据(HandlerMapping提示)将请求分发给相应的Controller来处理。
b.HandlerMapping(请求交给哪个模型来处理):告诉DispatcherServlet,请求地址与Controller的对应关系。
c.Controller(二级控制器)(模型,业务处理)负责处理业务逻辑。
注:Controller经常再次调用其它的javabean来处理请求。
d.ModelAndView(处理结果和视图名) 封装了处理结果和视图名。
e.ViewResolver(视图解析器)依据视图名,返回真正的页面的名称。
注:Spring Web MVC的工作流程。
step1, 请求首先进入Dispatcher[调度员,分配器]Servlet主控制器。
step2主控制器调用HandlerMapping组件 根据请求找映射的Controller处理求。
step3, 执行Controller处理方法,将处理结果封装成ModelAndView并返回给DispatcherServle。
step4, DispatcherServlet会调用ViewResolver来解析视图名,然后依据解析的结果来生成相应的页面。
注意:视图可以使用jsp来实现,也可以使用其它一些技术(比如Freemarker等)