springmvc框架 dispacherServelet容器组件调用

news2024/9/24 3:28:04

      服务器启动时,tomcat创建并自动装配所有生成对象:spring容器放在服务器应用全局中,springmvc容器被放在dispacherServlet容器中。注解解析器在dispacherServlet创建时赋予它识别相关注解并作出相应操作的能力。

       浏览器发送请求req,首先经过 过滤器,过滤器通常用来实现请求和响应的编码格式,或者拦截业务;

        请求req到达dispacherServelet,内部拦截器preHandle()方法调用,返回值为true时放行;

        请求req由到达Controller层相应url的单元方法中,执行相关业务逻辑;到达和执行两步由自动生成的RequestMappingHandlerMapping和RequestMappingHandlerAdapter两个对象分别处理。

        其中的Mapping负责查找对应方法。Adapter负责调用方法体,首先通过反射得到的方法类对象来映射参数。如果添加了@ResponsBody会在方法调用完成时设置相应的响应格式Json/Xml。如果是请求转发或重定向则会创建并设置ModelAndView对象,最后返回给dispacherServelet

        这时dispacherServelet调用拦截器postHandle(),执行方法体。

        postHandle()执行完成后dispacherServelet拿出ModelAndView对象,调用视图解析器渲染出对应路径页面。

        这时dispacherServelet调用拦截器afterCompletion(),执行方法体。

        最后以http响应的格式发送给浏览器。

        

注解解析器

<mvc:annotation-driven/>

         使用springmvc框架时,激活dispacherServelet能识别controller层添加的各种注解的能力,并且做出相应的方法调用或者处理。

        要实现处理调用的能力,依赖于三个类对象:

        RequestMappingHandlerMapping

            处理@RequestMapping的请求映射

        RequestMappingHandlerAdapter

            调用@RequestMapping相应方法,结果返回给dispacherServelet

        ExceptionHandlerExceptionResolver

            对控制器层异常的处理

   在启用注解解析器时,这三个类对象被自动创建。     

        在spring-mvc.xsd文件的说明中

过滤器

拦截器:

        多个拦截器拦截同一目标的执行顺序:

                preHandle()从配置文件自上而下执行。

                postHandle()自下而上执行。

视图解析器:

        页面技术除了基于java的jsp,还有很多种。可以通过不同视图解析器渲染不同类型页面。

异常处理:

       通过注解 @ExceptionHandler():

                Controller本类 局部:

        

               Controller全体类 全局

        springmvc局部配置:

        项目全局配置:

       

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

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

相关文章

养老院老人健康信息管理系统 /养老院管理系统

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&a…

达梦数据库 DMFLDR的使用

达梦的DMFLDR使用 1.背景2.要求3.实验步骤3.1 参数简介3.2 控制文件3.3 数据文件编写3.4 创建表3.5 执行装载程序3.6 查看运行结果3.7 数据导出控制文件编写3.8 数据导出命令3.9 行列分隔符 4.实验结论 1.背景 用户通过使用快速装载工具能够把按照一定格式排序的文本数据以简单…

门店收银系统源码+同城即时零售多商户入驻商城源码

一、我们为什么要开发这个系统&#xff1f; 1. 商户经营现状 “腰尾部”商户&#xff0c;无小程序运营能力&#xff1b;自营私域商城流量渠道单一&#xff1b;无法和线下收银台打通&#xff0c;库存不同步&#xff0c;商品不同步&#xff0c;订单不同步&#xff1b; 2.平台服…

SpringBoot-application.properties为对象赋值

简单对象赋值 第一种方式 首先让该Bean交由Spring管理,然后加上ConfigurationProperties(prefix"前缀") <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId>&l…

PCIe学习笔记(19)

TLP Prefix&#xff08;前缀&#xff09;规则 以下规则适用于任何包含TLP Prefix的TLP: •对于任何TLP, TLP第0字节的Fmt[2:0]字段值为100b表示存在TLP Prefix, Type[4]位表示TLP Prefix的类型。 ◦Type[4]位的值为0b表示存在Local TLP Prefix ◦Type[4]位的值为1b表示存在…

一、Matlab基础

文章目录 一、Matlab界面二、Matlab窗口常用命令三、Matlab的数据类型3.1 数值类型3.2 字符和字符串3.3 逻辑类型3.4 函数句柄3.5 结构类型3.6 细胞数组 四、Matlab的运算符4.1 算术运算符4.2 关系运算符4.3 逻辑运算4.4 运算符优先级 五、Matlab的矩阵5.1 矩阵的建立5.2 矩阵的…

解决vscode连接远程服务器时一直要求输入密码的问题

今天在用vscode连接我的Linux服务器时&#xff0c;输入密码后并没有成功登录&#xff0c;而是不断的弹出密码输入框。如果有遇到相同问题的同学可以试试下面的方法 1.点击查看&#xff0c;打开命令面板 2.终止服务器 选中自己的服务器&#xff0c;然后会让你输入密码 3.重新登…

sqlserver一列转多行

文章目录 sqlserver一列转多行建表插入数据方式一方式二 sqlserver一列转多行 建表 CREATE TABLE [dbo].[MM_T_MATER]([fbillno] [NVARCHAR](50) NOT NULL,[fid] [INT] NOT NULL,[FCREATEDATE] [DATETIME] NOT NULL,[FDATE] [DATETIME] NOT NULL,[FPURCHASEORGID] [INT] NOT …

leetcode70_爬楼梯

思路 动态规划 爬到第n阶楼梯的方法数为&#xff1a;第n-1阶楼梯的方法数 第n-2阶楼梯的方法数 func climbStairs(n int) int {if n < 2 {return 1}dp : make([]int, n1)dp[1] 1dp[2] 2for i:3; i<n; i {dp[i] dp[i-1] dp[i-2]}return dp[n] }

C++分析哈希表

目录 哈希表 哈希表介绍 哈希表的数据插入和查找原理 哈希表的存放方法 开散列解决哈希冲突 思路 代码设计 结构设计 数据插入 数据查找 数据删除 闭散列解决哈希冲突 思路 代码设计 结构设计 数据插入 数据查找 数据删除 析构函数设计 比较key相等以及key…

Firefox滚动条在Win10和Win11下表现不一致问题?

文章目录 前言总结解决方法 前言 最近在写页面的时候发现一个非常有意思的事。Firefox滚动条在Win10和Win11下表现居然不一致。在网上几经查找资料&#xff0c; 终于找到原因所在。总结成下面的文章&#xff0c;加深印象也防止下次遇到。 总结 参考文章&#xff1a; Firefox…

淘宝天猫优惠券领取入口直达口令是什么?

词令是一款关键词口令直达工具&#xff1b;打开词令&#xff0c;输入口令「tb88」&#xff0c;搜索直达口令关联的目标淘宝优惠券领取入口。领取成功后&#xff0c;在下单购买默认使用领到的店铺优惠券享受券后价优惠。下面为您准备了图文教程 淘宝优惠券领取入口直达口令是什…

突破视觉界限:单目深度估计算法,智能无人系统的新视角

今天&#xff0c;为大家介绍一项新的SpireCV视觉感知技术——单目深度估计算法&#xff08;MDE, Monocular Depth Estimation&#xff09;。 什么是单目深度估计算法&#xff1f; 简单来说&#xff0c;单目深度估计是指通过单个摄像头获取的图像来估计场景中物体的深度信息。相…

打破老美垄断,潘展乐商业价值起飞

文&#xff5c;琥珀食酒社 作者 | 积溪 奥运会上的潘展乐 真是牛逼坏了 拿下男子100米自由游金牌 打破欧美长达近百年垄断 搞定男子4x100米混合泳金牌 终结了美国在这项目上 10年不败的神话 比赛前 美国选手对他爱答不理 招呼都不打 比赛后美国选手想套热乎 潘展乐…

【鸿蒙开发基础学习】UIAbility 组件启动模式

UIAbility 组件启动模式 UIAbility 的启动模式是指 UIAbility 实例在启动时的不同呈现状态。针对不同的业务场景&#xff0c;系统提供了三种启动模式&#xff1a; singleton&#xff08;单实例模式&#xff09;multiton&#xff08;多实例模式&#xff09;specified&#xff…

WordPress网站克隆:用户指南

在这个数字化时代&#xff0c;拥有自己的网站已经非常普遍了。不管是个人博客还是企业官网&#xff0c;WordPress都提供了便捷的建站方式。但是&#xff0c;有时候我们需要复制一个现有的网站&#xff0c;无论是为了测试新功能还是迁移到新服务器。那么&#xff0c;如何克隆一个…

2024年新能源汽车市场保有量创新高

2024年新能源汽车市场大爆发&#xff1a;渗透率飙升&#xff0c;保有量创新高&#xff0c;充电桩建设驶入快车道 随着2024年新能源汽车市场的持续繁荣&#xff0c;一场前所未有的绿色革命正在全球范围内加速推进。这一年&#xff0c;新能源汽车的渗透率不仅实现了质的飞跃&…

微软超高危漏洞“狂躁许可”安全通告,亚信安全ForCloud快速响应

今日&#xff0c;亚信安全CERT监控到安全社区研究人员发布安全通告&#xff0c;披露了微软“狂躁许可”漏洞(CVE-2024-38077)。该漏洞由于windows系统的远程桌面授权服务存在边界错误而导致。攻击者可以发送其精心制作的数据传递给应用程序&#xff0c;这可能引发基于堆的缓冲区…

Element学习(axios异步加载数据、案例操作)(5)

1、这次学习的是上次还未完成好的恶element案例&#xff0c;对列表数据的异步加载&#xff0c;并渲染展示。 ——>axios来发送异步请求 &#xff08;1&#xff09; &#xff08;2&#xff09;在vue当中安装axios &#xff08;注意在当前的项目目录&#xff0c;并且安装完之后…

JAVA—异常

认识异常&#xff0c;学会从报错信息中发现问题&#xff0c;解决问题。并学会构建自定义异常&#xff0c;提醒编程时注意 目录 1.认识异常 2.自定义异常 1.自定义运行时异常 2.自定义编译时异常 3.异常的处理 1.认识异常 异常就是代表程序出现的问题&#xff0c;用来查询B…