SpringMVC

MVC:指一种架构模式。用来将业务逻辑,数据,显示分离的方法来组织代码。

M(model):模型。提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:数据DAO和行为Service。

V(view):视图。负责进行模型的展示一般就是我们看到的用户界面,客户想要看到的东西。

C(controller):控制器。接受用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返会给视图,由视图负责展示。也就是说控制器做了个调度员的工作。

职责:控制器:  1. 取得表单数据;2.调用业务逻辑;3.转向指定的页面;

   模型:   1.业务逻辑;   2.保存数据的状态;

   视图:   1.显示视图。

作用:提高了代码的复用率和项目的扩展性,并且大大降低了项目的维护成本。

 

SpringMVC是Spring Framework的一部分,使基于Java实现MVC的轻量级Web框架。

SpringMVC的特点:

    1. 轻量级,简单易学

    2. 高效,基于请求响应的MVC框架

    3. 与Spring兼容性好,无缝结合

    4. 约定大于配置

    5. 功能强大:RESTful,数据验证,格式化,本地化,主题等;

    6. 简洁灵活

Spring的web框架围绕DispatchServlet(调度Servlet)设计;SpringMVC框架像许多框架一样,以请求为驱动,围绕一个中心Servlet分派请求以及提供

其他功能,DispatchServlet是一个实际的Servlet(它继承了HttpServlet)

--涉及组件分析

1.DispatchServlet:前端控制器(不需要程序员开发)由框架提供,在web.xml中配置。

作用:接受请求,响应结果,相当于转发器,中央处理器

2.HandlerMapping:处理器映射器(不需要程序员开发)由框架提供,

作用:根据请求的URL查找Handler(处理器/Controller),可以通过xml和注解方式来映射。

3.HandlerAdapter:处理器适配器(不需要程序员开发)由框架提供,

作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler中的方法。

4.Handler:处理器,也称之为Controller,需要程序员开发

注意:编写Handler使要按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler。

作用:接受用户请求,调用业务方法处理请求,也称之为后端控制器。

5.ViewReslover:视图解析器(不需要程序员开发)由框架提供,

作用:进行视图解析,把逻辑视图解析成真正的物理视图。

SpringMVC框架支持多种View视图技术,包括:jstlView,freemarkerView,ThymelwafView等

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

作用:把数据展现给用户的页面。View是一个接口实现类支持不同的View技术(jsp,freemarker,pdf等)

执行流程:

    1.用户发出请求被DispatchServlet拦截并进行处理

    2.DispatchServlet收到请求调用HandlerMapping(处理器映射器)

    3.HandlerMapping找到具体的处理器(查找xml配置或注解配置),生成处理器对象以及处理器拦截器(如果有)

    随后再一起返回给DispatchServlet。

    4.DispatchServlet调用HandlerAdapter(处理器适配器)。

    5.HandlerAdapter经过适配器调用具体的处理器(Handler/Controller)

    6.Controller执行完成后返回ModelAndView对象

    7.HandlerAdapter将Controller执行结果ModelAndView传给ViewReslover(视图解析器)

    8.DispatchServlet将ModelAndView后返回具体View(视图)给DispatchServlet。

    9.ViewReslover解析ModelAndView后返回具体View(视图)给DispatchServlet。

    10.DispatchServlet根据View进行渲染视图(即将模型数据填充视图中)。

    11.DispatchServlet响应 View给用户。

 

posted @ 2022-05-06 12:42  luoshen-luo  阅读(24)  评论(0编辑  收藏  举报