zoukankan      html  css  js  c++  java
  • SpringMvc的工作原理

    一、spring简介  

     springMVC是spring框架的一个模块,springMVC和spring无需通过中间整合层进行开发。
        springMVC是一个基于mvc的web框架。
        spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来:
       
     
     
    (1).当客户端发起请求到前端控制器(DispatcherServlet),前端控制器请求HandlerMapper 查找Handler(可以根据xml配置、注解进行查找),然后把Handler返回前端控制器
    (2).前端控制器会请求处理器适配器来处理Handler,Handler执行完成给适配器返回ModelAndView
    (3).前端控制器请求视图解析器去进行视图解析(根据逻辑视图名称解析真正的视图(jsp...),视图解析器向前端控制器返回View
    (4).前端控制器进行视图渲染,视图渲染就是将模型数据(在ModelAndView对象中)填充到request域中。
    (5).前端控制器向用户响应结果。
      
     
    四、组件介绍
    1、前端控制器DispatcherServlet 由框架提供
      作用:接收请求,响应结果,相当于转发器,中央处理器。有了dispatcherServlet减少了其它组件之间的耦合度。
           用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。
    2、处理器映射器HandlerMapping 由框架提供
      作用:根据请求的url查找Handler
           HandlerMapping负责根据用户请求找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。
    3、处理器适配器HandlerAdapter
      作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler
           通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。
    4、处理器Handler(需要攻城狮开发)
      注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler
         Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。
         由于Handler涉及到具体的用户业务请求,所以一般情况需要攻城狮根据业务需求开发Handler。
    5、视图解析器View resolver(不需要攻城狮开发),由框架提供
      作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)
      View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。 springmvc框架提供了很多的View视图类型,包括:jstlView、freemarkerView、pdfView等。
      一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由攻城狮根据业务需求开发具体的页面。
    6、视图View(需要攻城狮开发jsp...)
      View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf...)
     
  • 相关阅读:
    spring注入原型bean
    按时间间隔查询
    Qconf安装文档
    HttpEnum
    MyIfmHttpClient
    enum StatCode
    Linux修改war包中文件
    maven settings.xml windows
    maven settings.xml linux
    docker报错
  • 原文地址:https://www.cnblogs.com/xiaofuzi123456/p/11418753.html
Copyright © 2011-2022 走看看