zoukankan      html  css  js  c++  java
  • Spring+SpringMVC+MyBatis深入学习及搭建(十一)——SpringMVC架构

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6985816.html 

    前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十)——MyBatis逆向工程

    1.什么SpringMVC

    Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一个模块。SpringMVC和Spring无需通过中间整合层进行整合。

    SpringMVC是一个基于mvc的web框架。

    2.mvc在b/s系统下的应用

    (1)用户发起request请求至控制器(Controller)

        控制接收用户请求的数据,委托给模型进行处理。

    (2)控制器通过模型(Model)处理数据并得到处理结果

       模型通常是指业务逻辑

    (3)模型处理结果返回给控制器

    (4)控制器将模型数据在视图(View)中展示

      web中模型无法将数据直接在视图上显示,需要通过控制器完成。如果在C/S应用中模型是可以将数据在视图中展示的。

    (5)控制器将视图response响应给用户

       通过视图展示给用户要的数据或处理结果。

    3.SpringMVC框架

    3.1架构流程

    (1)用户发请求至前端控制器(DispatcherServlet)

    (2)DispatcherServlet接收到请求调用HandlerMapping处理器映射器

    (3)处理器映射器根据请求url找到具体的处理器(Handler,可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

    (4)DispatcherServlet通过HandlerAdapter处理器适配器调用处理器

    (5)执行处理器(Controller,也叫后端控制器)

    (6)Controller执行完后返回ModelAndView

    (7)HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet

    (8)DispatcherServlet将ModelAndView传给ViewResolver视图解析器

    (9)ViewResolver解析后返回具体View

    (10)DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)

    (11)DispatcherServlet响应用户

     3.2组件说明

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

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

         有了DispatcherServlet可以减少其它组件之间的耦合度。

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

         作用:根据请求的url查找Handler

    (3)处理器适配器HandlerAdapter

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

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

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

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

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

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

          View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf....)

     如果此文对您有帮助,微信打赏我一下吧~ 

  • 相关阅读:
    判断php变量是否定义,是否为空
    HTTP Client 编写
    推荐《冒号课堂——编程范式与OOP思想》
    一些免费的HTML编辑器
    如何判断mysql中数据表中两个列之间的相同记录和不同记录
    PostgreSQL 8.4, SQL Server 2008, MySQL 5.1比较
    JDBC纵览
    使用jdbc连接sql数据库
    关于PHP中变量的判定
    如何判断数据库中是否存在一个数据表
  • 原文地址:https://www.cnblogs.com/Joanna-Yan/p/6985816.html
Copyright © 2011-2022 走看看