springMVC笔记

SpringMVC接口解释

  • DispatcherServlet接口:
    Spring提供的前端控制器,所有的请求都有经过它来统一分发。在DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。
  • HandlerMapping接口:(处理器映射器)
    能够完成客户请求到Controller映射。
  • Controller接口:
    1.需要为并发用户处理上述请求,因此实现Controller接口时,必须保证线程安全并且可重用。
    2.Controller将处理用户请求,这和Struts Action扮演的角色是一致的。一旦Controller处理完用户请求,则返回ModelAndView对象给DispatcherServlet前端控制器,ModelAndView中包含了模型(Model)和视图(View)。
  • ViewResolver接口:
    Spring提供的视图解析器(ViewResolver)在Web应用中查找View对象,从而将相应结果渲染给客户。

SpringMVC运行原理:

  1. 客户端请求提交到DispatcherServlet
  2. 由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller
  3. DispatcherServlet将请求提交到Controller
  4. Controller调用业务逻辑处理后,返回ModelAndView
  5. DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图视图负责将结果显示到客户端

  • DispatcherServlet是整个Spring MVC的核心。
  • 它负责接收HTTP请求组织协调spring MVC的各个组成部分。其主要工作有以下三项:

    • 1.截获符合特定格式的URL请求。
    • 2.初始化DispatcherServlet上下文对应的WebApplicationContext,并将其与业务层、持久化层的WebApplicationContext建立关联。
    • 3.初始化Spring MVC的各个组成组件,并装配到DispatcherServlet中。

看到这个图大家可能会有很多的疑惑,现在我们来看一下这个图的步骤:(可以对比MVC的原理图进行理解)
这里写图片描述

第一步:用户发起请求到前端控制器(DispatcherServlet)

第二步:前端控制器请求处理器映射器(HandlerMappering)去查找处理器(Handle):通过xml配置或者注解进行查找

第三步:找到以后处理器映射器(HandlerMappering)像前端控制器返回执行链(HandlerExecutionChain)

第四步:前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)

第五步:处理器适配器去执行Handler

第六步:Handler执行完给处理器适配器返回ModelAndView

第七步:处理器适配器向前端控制器返回ModelAndView

第八步:前端控制器请求视图解析器(ViewResolver)去进行视图解析

第九步:视图解析器像前端控制器返回View

第十步:前端控制器对视图进行渲染

第十一步:前端控制器向用户响应结果

  • 看到这些步骤我相信大家很感觉非常的乱,这是正常的,但是这里主要是要大家理解springMVC中的几个组件:

    前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU。
    
    处理器映射器(HandlerMapping):根据URL去查找处理器
    
    处理器(Handler):(需要程序员去写代码处理逻辑的)
    
    处理器适配器(HandlerAdapter):会把处理器包装成适配器,这样就可以支持多种类型的处理器,类比笔记本的适配器(适配器模式的应用)
    
    视图解析器(ViewResovler):进行视图解析,多返回的字符串,进行处理,可以解析成对应的页面
    

MVC:

  1. Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
  2. B/S系统下,模型层不能将数据直接给视图层(通过resuest方式)。

    • Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。

      通常模型对象负责在数据库中存取数据。模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务
      
    • View(视图)是应用程序中处理数据显示的部分。

      通常视图是依据模型数据创建的。一般就是我们见到的用户界面
      
    • Controller(控制器)是应用程序中处理用户交互的部分。

      通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。 也就是说控制器做了个调度员的工作。
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值