专栏首页Hcode网站SSM框架(四)SpringMVC概述

SSM框架(四)SpringMVC概述

什么是MVC模式

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

  • Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。
  • View(视图):负责进行模型的展示,一般就是我们见到的用户界面。
  • Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。也就是说控制器做了个调度员的工作。

SpringMVC是什么

Spring的web框架围绕DispatcherServlet [ 调度Servlet ] 设计。 DispatcherServlet的作用是将请求分发到不同的处理器。从Spring 2.5开始,使用Java 5或者以上版本的用户可以采用基于注解形式进行开发,十分简洁;

Spring的web框架围绕DispatcherServlet设计。DispatcherServlet的作用是将请求分发到不同的处理器,就是像一个中介,负责转发请求到指定处理器。

DispatcherServlet是一个实际的Servlet (它继承自HttpServlet 基类)。

SpringMVC执行原理

1. DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心。用户发出请求,DispatcherServlet接收请求并拦截请求。

  1. HandlerMapping为处理器映射。DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler。
  2. HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,将解析后的信息传递给DispatcherServlet,如解析控制器映射。
  3. HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler。
  4. Handler让具体的Controller执行。(例如类上有注解为@Controller如果里面有对应的映射路径方法就让这个方法执行操作)
  5. Handler将具体的执行信息返回给HandlerAdapter,如ModelAndView。
  6. HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet。
  7. DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名。
  8. ViewResolver视图解析器将解析的逻辑视图名传给DispatcherServlet。
  9. DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图,同时可能进行数据渲染。
  10. 最终视图相应给用户。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python3使用PyMySQL库对mysql数据库进行数据操作

    今天使用py3里面的pymysql库对MySQL数据库进行DDL,DML语句的操作,分别为创建表,修改表,删除表,对表的数据进行增删改查,SQL语句都是举的简单...

    HcodeBlogger
  • JDBC数据库的增删改查简单操作

    本次带来的是JAVA的JDBC操作,对数据库进行发送SQL语句,以达到对数据库语言的增删改查操作 需要下载驱动类包 MySQL数据库的JDBC驱动包 http...

    HcodeBlogger
  • Python3爬虫模拟登录爬取百度图片

    pycharm,python3.7,selenium库,request库,os文件库,re模块的正则表达式运用,自行下载chromedriver自测软件

    HcodeBlogger
  • springMVC执行流程

    先看一张流程图,实线部分为spring框架完成,虚线部分(即contronller调用业务层部分)才是我们需要动手完成的

    孙晨c
  • MySQL之视图简介

    视图在数据库中有着重要的作用,视图经常被用来当做一个抽象的装置,特别是对某些应用来讲,它可能不关心表的结构,只需要按照视图的定义来取特定字段的数据或者更...

    AsiaYe
  • ASP.NET MVC学习笔记04数据传递

    上一篇的末尾讲到了,在了解模型之前,先来看看ASP.NET MVC是如何将数据从控制器传递给视图的。 ---- 简单梳理一下: 控制器想要请求的URL,控...

    李郑
  • MVC模式

    MVC代表ModelViewController(模型、视图、控制器 )模式。这种模式应用于应用程序的分层开发。

    祝你万事顺利
  • 对angular开发者的建议,设计师也有

    最近公司的项目使用angular,与ionic开发企业级软件; 现在项目越来越庞大了,我是中途加入团队,现在有时候就实现一个简单的需求,就要花费几天; 比如产品...

    前朝楚水
  • 视图——机房收费系统

    在第一次做机房收费系统时,学生信息和卡的信息是在同一张表中的,而机房收费系统重构时,对数据库进行了重新设计,学生信息和卡的信息被分到了单独的两张表中(遵照三范...

    令仔很忙
  • iOS的MVC框架之控制层的构建(下)

    在我的iOS的MVC框架之控制层的构建(上)一文中介绍了一些控制层的构建方法,而这篇文章则继续对一些方法进行展开讨论。MVC被众多开发者所诟病的C层的膨胀,究其...

    欧阳大哥2013

扫码关注云+社区

领取腾讯云代金券