一张图理清SpringMVC工作原理

一张图理清SpringMVC工作原理一、首先,我们先来认识一下SpringMVC的主要组件前端控制器(DisatcherServlet):接收请求,响应结果,返回可以是json,String等数据类型,也可以是页面(Model)。处理器映射器(HandlerMapping):根据URL去查找处理器,一般通过xml配置或者注解进行查找。处理器(Handler):就是我们常说的controller控制器啦,由程序员编写。处理器适配器(Ha

大家好,又见面了,我是你们的朋友全栈君。

一、首先,我们先来认识一下SpringMVC的主要组件

前端控制器(DisatcherServlet):接收请求,响应结果,返回可以是json,String等数据类型,也可以是页面(Model)。

处理器映射器(HandlerMapping):根据URL去查找处理器,一般通过xml配置或者注解进行查找。

处理器(Handler):就是我们常说的controller控制器啦,由程序员编写。

处理器适配器(HandlerAdapter):可以将处理器包装成适配器,这样就可以支持多种类型的处理器。

视图解析器(ViewResovler):进行视图解析,返回view对象(常见的有JSP,FreeMark等)。

二、SpingMVC的工作原理

这里写图片描述
下面是文字步骤说明:

1、用户发送请求到前端控制器(DispatcherServlet)。

2、前端控制器请求处理器映射器(HandlerMapping)去查找处理器(Handler)。

3、找到以后处理器映射器(HandlerMappering)向前端控制器返回执行链(HandlerExecutionChain)。

4、前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)。

5、处理器适配器去执行Handler。

6、处理器执行完给处理器适配器返回ModelAndView。

7、处理器适配器向前端控制器返回ModelAndView。

8、前端控制器请求视图解析器(ViewResolver)去进行视图解析。

9、视图解析器向前端控制器返回View。

10、前端控制器对视图进行渲染。

11、前端控制器向用户响应结果。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146605.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Vue的跨域解决方案

    Vue的跨域解决方案如何在vue里面优雅的解决跨域,路由冲突问题?当我们在路由里面配置成一下代理可以解决跨域问题:proxyTable:{‘/goods/*’:{target:’http://localhost:3000′},’/user/*’:{ target:’http://ocalhost:3000′}},这种配置方式在一定程度上解决了跨…

    2022年10月1日
    2
  • 线程池实现原理_最通俗易懂的解读比特币相关原理

    线程池实现原理_最通俗易懂的解读比特币相关原理本篇内容综合广大网友提供内容,笔者经过整理,对数据库连接池原理和实现过程做个很系统的并且通俗易懂的分析讲解,以及手写一个连接池实现过程作为演示。一、早期通过JDBC方式操作数据库我们先来看早期使用JDBC的方式操作数据库的过程,这里以mysql数据库为例讲解JDBC操作数据库原理:一般来说,java应用程序访问数据库的过程是:   ①装载数据库驱动程序;   ②通过jdbc…

    2022年9月16日
    2
  • 台式机dp接口在哪(主机没有dp接口怎么办)

    导读:成就3471和战99,均为品牌成套机,价格4千元左右,是否值得入手?请往下看:戴尔(DELL)成就3471:1、硬件点评下:主板:小型机箱,主板接口很丰富,M2.0的Pic-E接口,sata接口也有预留,内存槽也可以加内存,PIC16槽也可以扩充显卡,但机箱过小,需要额外注意;DDR4接口,海力士8G2666HMZ内存办公够用;电源:没挖到官方数据,但考虑显卡不好扩容,我们基本上可以忽略…

    2022年4月13日
    643
  • Lamp架构_lamp服务器

    Lamp架构_lamp服务器LAMP架构搭建1.LAMP架构简介所谓lamp,其实就是由Linux+Apache+Mysql/MariaDB+Php/Perl/Python的一组动态网站或者服务器的开源软件,除Linux外其它各部件本身都是各自独立的程序,但是因为经常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。LAMP指的是Linux(操作系统)、Apache(HTTP服务器)、MySQL(也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的第一个字母,一般用来建

    2022年10月17日
    3
  • uniapp 使用本地数据库

    uniapp 使用本地数据库//我这个封装通过promise返回出去!!!//我这个封装通过promise返回出去!!!//创建数据库或者有该数据库就打开,这一步必须要!exportfunctionopenSqlite(cb){//创建数据库或者打开//这plus.sqlite只在手机上运行plus.sqlite.openDatabase({name:’wallet’,//数据库名称path:’_doc/wallet.db’,//数据库地址,…

    2022年5月29日
    282
  • C#中虚方法(virtual)详解

    C#中虚方法(virtual)详解虚方法如何定义?虚方法怎么声明?虚方法的规则是什么?虚方法如何进行调用?虚方法的作用是什么?虚方法有什么好处?虚方法使用时注意什么?

    2025年9月1日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号