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.mzph.cn/pingmian/38491.shtml

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

相关文章

制定全面测试计划:使用TS-GNSS模拟器助力接收器选择

GPS/GNSS信号无处不在,也是目前定位导航应用中最为关键的一环,而GNSS接收器芯片组的低成本和高性能使得将GNSS接收器更容易得集成到以前从未有过的产品中去。由于存在以多种频率传输信号的多个GNSS星座,以及用于提高GNSS精度的各种可用技术&a…

Swift 新结构化并发中鲜为人知的 isolated 参数

概述 伴随着 Swift 5.5(WWDC21)推出的新结构化并发到今年的 WWDC 24 已经有 3 个多年头了。想必大家都对其中 async/awiat、async let、TaskGroup、Actor 等各种概念都了然于胸了吧? 不过小伙伴们可能不知道的是:新结构化并发&a…

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

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

ABeam×StartUp | ABeam德硕中国新创部门拜访通用机器人初创公司 :逐际动力,就具身智能机器人的发展展开交流

近日,ABeam中国新创部门有幸拜访了深圳逐际动力科技有限公司(以下简称:逐际动力)。作为一家通用机器人公司,其在人形机器人、四轮足机器人等领域具有深厚的学术与技术储备。 现场合影 左:ABeam中国新创部门…

PostgreSQL匹配字符串方法

PostgreSQL匹配字符串方法 在 PostgreSQL 中,如果你想要检查一个包含多个由逗号分隔的值的字符串是否包含特定的子字符串,你可以使用字符串函数来实现这一点。由于你正在查找的是一个由逗号分隔的列表中的特定值,你需要确保在比较时该值不是…

Python | Leetcode Python题解之第201题数字范围按位与

题目&#xff1a; 题解&#xff1a; class Solution:def rangeBitwiseAnd(self, m: int, n: int) -> int:while m < n:# 抹去最右边的 1n n & (n - 1)return n

Laravel Auth 调用 tymon/jwt-auth 源码分析

版本 "tymon/jwt-auth": "1.0.0-rc.1""laravel/framework": "5.5.*" tymon/jwt 的使用 这里省略安装步骤&#xff0c;直接写使用过程 auth.php api > [driver > jwt,provider > users, ],路由调用 Route::middleware([…

sheng的学习笔记-hive框架原理

需要学习的前置知识&#xff1a;hadoop 可参考 sheng的学习笔记-hadoop-CSDN博客 相关网址 官网&#xff1a;http://hive.apache.org 文档&#xff1a;https://cwiki.apache.org/confluence/display/Hive/GettingStarted https://cwiki.apache.org/confluence/display/Hive/…

react 重新加载子组件

在React中&#xff0c;要重新加载某个子组件&#xff0c;你可以通过改变该组件的key属性来强制它重新渲染。这是因为React会在key变化时销毁旧的组件实例并创建一个新的实例。 多的不说直接上代码 import React, { useState } from react; import ChildComponent from ../chil…

Sermant自定义插件开发上手体验

作者&#xff1a;用友汽车信息科技&#xff08;上海&#xff09;有限公司 刘亚洲 Java研发工程师 一、研究缘由 由于目前我们所处的行业是汽车行业&#xff0c;项目上进行云服务的迁移时使用到了Sermant中的相关插件, 为了加深对Sermant开发和运行机制的了解&#xff0c;我…

线程、线程池与CompletableFuture线程编排

线程、线程池与CompletableFuture线程编排 1. 多线程的初始化方式1.1 简单实现多线程的启动方式(3种)1. 继承Thread实现2. 实现Runnable接口3. 实现callable接口(返回值)2. 基于线程池实现多线程的启动方式❤❤❤2.1 线程池创建与使用2.2 SpringBoot自定义线程池组件 ❤ ❤3. 多…

如何屏幕录制?这3款软件轻松实现!

随着科技的不断发展&#xff0c;屏幕录制成为了人们日常生活中越来越常见的需求。无论是录制游戏过程、分享教程、还是保存重要的在线会议&#xff0c;屏幕录制都是一个非常实用的工具。然而&#xff0c;很多用户却不知道如何屏幕录制。本文将详细介绍3款屏幕录制软件&#xff…

如何在Java中处理SSLHandshakeException异常?

如何在Java中处理SSLHandshakeException异常&#xff1f; 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; SSLHandshakeException异常是Java中常见的网络安全异…

使用Python进行视频处理:轻松制作影片

哈喽,大家好,我是木头左! 本文将介绍如何使用Python进行视频处理,帮助您轻松制作出令人惊叹的专业级影片。 安装必要的库 在进行视频处理之前,需要安装一些必要的库和模块。其中最常用的是OpenCV和FFmpeg。OpenCV是一个强大的计算机视觉库,可以用于图像和视频处理。FFmp…

《梦醒蝶飞:释放Excel函数与公式的力量》7.3 RIGHT函数

第七章&#xff1a;文本处理函数 第三节&#xff1a;7.3 RIGHT函数 7.3.1. RIGHT函数简介 RIGHT函数用于从文本字符串的末尾提取指定数量的字符&#xff0c;适合在需要从文本中提取特定后缀或处理固定格式的数据时使用。 语法&#xff1a; RIGHT(text, [num_chars]) text…

探索ChatGPT是如何改变癌症护理

了解生成式人工智能&#xff08;尤其是 ChatGPT&#xff09;如何通过高级数据集成和个性化患者管理来增强诊断和治疗&#xff0c;从而改变癌症治疗。了解 Color Health 的创新副驾驶模型及其对早期检测和患者结果的影响。 近年来&#xff0c;人工智能与医疗保健的融合为癌症治疗…

设计模式在Java项目中的实际应用

设计模式在Java项目中的实际应用 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 引言 设计模式是软件开发中重要的思想工具&#xff0c;它提供了解决特定问题…

机器学习中的数学底蕴与设计模式

在说机器学习设计模式之前&#xff0c;想多说几句&#xff0c;在进入软件行业最初的10年&#xff0c;那时候耳熟能详的基本就是多线程编程&#xff0c;互斥同步锁&#xff0c;设计模式&#xff0c;OOA&#xff0c;OOP&#xff0c;常规数组&#xff0c;tree&#xff0c;图的数据…

体验升级:扫描全能王智能高清滤镜2.0全面测评

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

C++——STL容器用法汇总

0. 写在前面 每次用C刷题都不可避免要用到STL很多容器&#xff0c;而每个容器的函数名称会有细微的差异&#xff0c;为了更加快速找到容器函数的用法&#xff0c;建立实例代码是最快速的方式。希望能够帮到你~ 1. STL容器用法汇总 C——STL(序列容器) arrayvectordequelist…