SpringMvc 执行原理

当用户请求 会发送到前端控制器,DisptcherServlet根据请求参数生成代理请求,找到对应的实际控制器,控制器处理请求,创建数据模型,访问数据库,将模型响应给中心控制器,控制器使用模型与视图渲染视图结构,将结果返回给中心控制器,再将结果返回给请求者

没有sprinmvc之前,我们用的是selervt 一个请求配置一个servlet,在web.xml文件中进行配置,要开发一个项目,要使用好多个serlet,配置。

而springmvc出现,替换了servlet,本质上还是一个大的servlet,帮我们做了集成式的处理。 具体过程:

  1. 当用户发起请求,先会发送到前端控制器(DisptcherServlet),也叫分发控制器,
  2. 根据当前发出的请求去查询对应的handler,也就是查找对应的controller是哪一个,
  3. 找到controller之后呢, 执行返回去的执行基链,(有一堆的链 比如前置处理,后置处理),会把这些都封装起来返回给前端控制器,
  4. 执行对应的hanlder,因为controller执行对应的hanlder是不同的,所有要通过一个适配器的组件来找到对应的controller方法,来进行执行,
  5. 执行完后在返回一个ModelAndView对象,方便我们进行页面回显和数据展示,。然后再将modelandview返回前端控制器,因为所有处理的核心流程都在前端控制器
  6. 返回之后,已经有视图和模型了,然后发送一个解析视图的请求,由viewResolver视图解析器解析,也就是找到对应的jsp页面,把这些东西返回给前端控制器
  7. 当返回之后 通过jsp。。等前端模板 进行页面渲染,把页面数据都进行一个填充,当填充好 在返回给浏览器 给用户看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/365424.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

09_计算机网络模型

目录 OSI/RM七层模型 OSI/RM七层模型 各层介绍及硬件设备 传输介质 TCP/IP协议簇 网络层协议 传输层协议 应用层协议 完整URL的组成 IP地址表示与计算 分类地址格式 子网划分和超网聚合 无分类编址 特殊含义的IP地址 IPv6协议 过渡技术 OSI/RM七层模型 OSI/RM七…

⭐Ollama的本地安装⚡

先来逛一下咱们的主角Ollama的官网地址: Ollama 大概长这个样子🤔 因为本地系统的原因,文章只提供Widows的安装方式,使用Linux和Mac的大佬,可以自行摸索🧐 下载完成后就是安装了🍕&#xff0c…

黑龙江等保测评科普

黑龙江的等保测评,即信息安全等级保护测评,是中国网络安全法框架下的一项重要制度,旨在提升信息系统安全水平,保护关键信息基础设施免受威胁。下面是对黑龙江等保测评流程和要求的科普: 1. 等保测评概念 定义&#xff…

【正点原子K210连载】 第十二章 跑马灯实验 摘自【正点原子】DNK210使用指南-CanMV版指南

1)实验平台:正点原子ATK-DNK210开发板 2)平台购买地址https://detail.tmall.com/item.htm?id731866264428 3)全套实验源码手册视频下载地址: http://www.openedv.com/docs/boards/xiaoxitongban 第十二章 跑马灯实验…

线程实现模型

用户级线程模型 此模型下的线程是由用户级别的线程库全权管理的 线程库并不是内核的一部分,而只是存储在进程的用户空间之中,这些线程的存在在对于内核来说是无法感知的 应用程序在对线程进行创建、终止、切换或同步等操作的时候, 并不需要…

解题思路:LeetCode 第 209 题 “Minimum Size Subarray Sum“

解题思路:LeetCode 第 209 题 “Minimum Size Subarray Sum” 在这篇博文中,我们将探讨如何使用 Swift 解决 LeetCode 第 209 题 “Minimum Size Subarray Sum”。我们会讨论两种方法:暴力法和滑动窗口法,并对这两种方法的时间复…

阿里云centos 7.9 使用宝塔面板部署.netcore 6.0

前言: 在做工作之前之前,如果你的服务器有数据盘,而且又没挂载,但是你想使用数据盘做为工作目录,建议跳转到下面这个链接先挂载数据盘,并到数据盘创建好目录,修改站点工作目录到数据盘的目录&am…

骑行十里箐:风景,挑战与心灵,在幽谷中的协奏曲

2024年6月29日,星期六,一个看似平凡的日子,却因一次不同寻常的骑行而变得难以忘怀。作为校长骑行群的一员,我有幸参加了这次骑行十里箐的活动。从滇池后海的宁静开始,到宝珠山顶的壮观落幕,这一天的旅程充满…

JFreeChart 生成Word图表

文章目录 1 思路1.1 概述1.2 支持的图表类型1.3 特性 2 准备模板3 导入依赖4 图表生成工具类 ChartWithChineseExample步骤 1: 准备字体文件步骤 2: 注册字体到FontFactory步骤 3: 设置图表具体位置的字体柱状图:饼图:折线图:完整代码&#x…

Quectel EM05-CE 模块测试

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页…

AI绘画:探索人工智能与艺术的奇妙结合

前言 人工智能技术的不断发展,使得AI绘画逐渐成为艺术领域的新宠。AI绘画是指利用人工智能算法进行绘画创作的一种艺术形式,它可以模拟人类艺术家的创作过程,创造出各种独特的艺术作品。 突破传统艺术的极限:AI绘画的无限可能性 …

每日一题---OJ题:分隔链表

片头 嗨!小伙伴们,大家好!今天我们一起来看看这道题----分隔链表 emmmm,这道题,看描述应该不算太难,我们一起来画一画图呗! 题目读懂了,那么如何破解这道题呢? 思路&…

探索PcapPlusPlus开源库:网络数据包处理与性能优化

文章目录 0. 本文概要1. PcapPlusPlus介绍1.1 概述1.2主要特性和功能1.3 PcapPlusPlus 主要模块关系和依赖1.4 网络协议层处理过程 2. 实例2.1 基于 PcapPlusPlus 的应用程序设计和封装流程:2.2 多线程示例代码2.3 代码说明: 3. 程序性能进一步优化3.1 避…

linux虚拟机部署的MySQL如何使用外网访问?教你轻松使用cpolar在centos搭建内网穿透

文章目录 写在前面实现Linux的内网穿透1、官网账号注册2、在Linux部署我们自己的项目3、一键自动下载安装cpolar4、设置自己的token5、启动cpolar服务6、MySQL穿透测试 卸载方法 写在前面 相信很多小伙伴在本地搭建了一个MySQL数据库,想让其他同事或者合作者一起使…

Shell编程实战

脚本编程步骤 脚本编程一般分为以下几个步骤: 需求分析:根据系统管理的需求,分析脚本要实现的功能、功能实现的层次、实现的命令与语句等; 命令测试:将要用到的命令逐个进行测试,以决定使用的选项、要设置的变量等: 脚本编程:将测试好的命令写入到脚本文…

python实现网页自动化(自动登录需要验证的网页)

引言: python作为实现网页自动化的一个重要工具,其强大的各种封装的库使得程序运行更加简洁,只需要下载相应的库,然后调用库中的函数就可以简便的实现我们想要的网页相关操作。 正文: 我的前几篇文章写了关于初学爬虫中比较容易上手的功能,例如爬取静态网页的数据、动…

Java并发编程基础知识点

目录 Java并发编程基础知识点1、线程,进程概念及二者的关系进程相关概念线程相关概念进程与线程的关系补充小知识点: 2、线程的状态Java线程的状态:Java线程不同状态之间的切换图示 3、Java程序中如何创建线程?①、继承Thread类②…

使用Python绘制极坐标图

使用Python绘制极坐标图 极坐标图极坐标图的优点使用场景 效果代码 极坐标图 极坐标图(Polar Chart)是一种图表类型,用于显示在极坐标系中的数据。极坐标图使用圆形坐标系,角度表示一个变量的值,半径表示另一个变量的…

elk对于集群实例的日志的整合-基于logstash采集日志

说明:基于logstash采集日志 环境: 物理机192.168.31.151 一.启动2个测试实例,每5-10s随机生成一条订单日志 实例一 包位置:/home/logtest/one/log-test-0.0.1-SNAPSHOT.jar 日志位置:/docker/elastic/logstash_ingest_data/l…

“医”路赋能!实在智能签约新疆百草堂

在新疆,地域广阔、人口稀疏的特性限制了实体药店的服务覆盖面,同时《“健康中国2030”规划纲要》对医药电商模式的规范化要求,使得医药电商迎来前所未有的增长机遇,而大量的订单也带来了运营成本上升、服务时效性低的挑战。 近日&…