Java面试题(11)

59.说一说springMVC的运行流程

1. 用户向服务器发送请求,请求被 Spring 前端控制 Servelt DispatcherServlet 捕获;

2. DispatcherServlet 对请求 URL 进行解析,得到请求资源标识符(URI)。然后根据该 URI,调 用 HandlerMapping 获得该 Handler 配置的所有相关的对象(包括 Handler 对象以及 Handler 对 象对应的拦截器),最后以 HandlerExecutionChain 对象的形式返回;

3. DispatcherServlet 根据获得的 Handler,选择一个合适的 HandlerAdapter;(附注:如果成功 获 得 HandlerAdapter 后,此时将开始执行拦截器的 preHandler(…)方法)

4. 提取 Request 中的模型数据,填充 Handler 入参,开始执行 Handler(Controller)。 在填充 Handler 的入参过程中,根据你的配置,Spring 将帮你做一些额外的工作: HttpMessageConveter: 将请求消息(如 Json、xml 等数据)转换成一个对象,将对象转换为 指定的响应信息 数据转换:对请求消息进行数据转换。如 String 转换成 Integer、Double 等 数据 根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等 数据验证: 验证数据的有效性(长度、格式等),验证结果存储到 BindingResult 或 Error 中

5. Handler 执行完成后,向 DispatcherServlet 返回一个 ModelAndView 对象;

6. 根据返回的 ModelAndView,选择一个适合的 ViewResolver(必须是已经注册到 Spring 容器中 的 ViewResolver)返回给 DispatcherServlet ;

7. ViewResolver 结合 Model 和 View,来渲染视图;

8. 将渲染结果返回给客户端。

60.springmvc有哪些组件

1. DispatcherServlet:前端控制器,把请求转发给具体的控制类

2. Controller:具体处理请求的控制器

3. HandlerMapping:处理器映射器,负责映射前端控制器转发给controller时的映射策略

4. ModelAndView:服务返回的数据和视图层的封装类

5. ViewResolver:视图解析器,解析具体的视图

6. Interceptors:拦截器,负责拦截我们定义的请求然后做处理工作

61.说一下如何解决get和post乱码

post:在web.xml中配置CharacterEncodingFilter过滤器,将encoding设置为UTF-8

get:

1. 修改tomcat配置文件,添加编码与工程编码一致。

2. 对参数进行重新编码

62.springmvc的拦截器与过滤器有什么区别

拦截器不依赖于servlet容器,过滤器依赖于servlet容器 拦截器只能对action请求起作用,而过滤器集合可以对所有的请求起作用 拦截器可以访问容器中的bean,而过滤器不能访问

(1)多个拦截器的执行顺序 与xml文件中,拦截器定义的顺序有关。

假设定义了两个拦截器,那么对于拦截的controller执行顺序是这样的 preHandle1执行---->preHandle2执行---->postHandler2执行---->postHandler1执行---- >afterCompletion2执行---->afterCompletion1执行 另外,postHandler在拦截器链内所有拦截器返回成功才会调用 afterCompletion只有在preHandle返回true才调用

63.说一下@RequestMaping的作用

用于处理请求地址映射的注解,可以用在类和方法上。用在类上,表示类中的所有响应请求的方法都是 以该地址作为父路径。

它包括了六个属性: value、method:分别指请求的实际地址以及请求的类型(get、put、post、delete)

consumes、produces:分别用来指定处理请求提交的内容类型(application/json等)以及指 定返回的内容类型

params、headers:分别用来指定request中必须包含某些参数值才可以让该方法处理,以及指 定request中必须包含某些指定的header值才能让方法处理请求

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32 E18-D80NK红外避障传感器

E18-D80NK-N是一款红外光电传感器,它同时具备发射和接收功能。通过对发射光进行调制后发出,并通过接收头对反射光进行解调输出。 E18-D80NK-N采用了透镜来增强传感器的性能,使其能够检测更远的距离。根据红外光的特性,不同颜色的…

VitePress-04-文档中的表情符号的使用

说明 vitepress 的文档中是支持使用表情符号的,像 😂 等常用的表情都是支持的。 本文就来介绍它的使用方式。 使用语法 语法 : :表情名称: 例如 : :joy: 😂 使用案例代码 # 体会【表情】的基本使用 > hello world …

22.Lambda 表达式

Lambda 表达式 1. 概况2. 函数式接口3. 格式3.1 完整格式3.2 省略格式 4. 代码示例5. 输出结果6. 注意事项 学习Lambda表达式之前最好先学会 匿名内部类 具体信息请查看 API 帮助文档 1. 概况 Lambda 表达式是一种在编程中用来表示匿名函数的简洁语法。它是基于函数式编程风格…

2024.1.27每日一题

LeetCode 最大合金数 2861. 最大合金数 - 力扣(LeetCode) 题目描述 假设你是一家合金制造公司的老板,你的公司使用多种金属来制造合金。现在共有 n 种不同类型的金属可以使用,并且你可以使用 k 台机器来制造合金。每台机器都需…

SpringBoot之JWT登录

JWT JSON Web Token(JSON Web令牌) 是一个开放标准(rfc7519),它定义了一种紧凑的、自包含的方式,用于在各方之间以JSON对象安全地传输信息。此信息可以验证和信任,因为它是数字签名的。jwt可以使用秘密〈使用HNAC算法…

嵌入式学习第十三天

9.指针: (1)const指针 const 关键字 常量(只读) 1.const int *p; 2.int const *p; 1和2是等价的 const修饰 *p,指针变量p的值可以改变,但不能利用指针修改指向空间中的值 3.int *const p; const修饰 p,指针变量p的值不能改变…

【教程】极简Docker搭建“帕鲁幻兽PalWorld”服务器, 附资源

注意: 如果搭建在个人服务器或者内网中,需要做内网穿透,可以看这篇博客: 【教程】超详细安装和使用免费内网穿透软件Zerotier-One-CSDN博客文章浏览阅读523次,点赞8次,收藏8次。真的很详细https://blog.csd…

[设计模式Java实现附plantuml源码~结构型]树形结构的处理——组合模式

前言: 为什么之前写过Golang 版的设计模式,还在重新写Java 版? 答:因为对于我而言,当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言,更适合用于学习设计模式。 为什么类图要附上uml 因为很…

Mysql查询数据

1 基本查询语句 MySQL从数据表中查询数据的基本语句为SELECT语句。SELECT语句的基本格式是: 2 单表查询 2.1 查询所有字段 SELECT * FROM 表名; 2.2 在SELECT语句中指定所有字段 SELECT f_id, s_id ,f_name, f_price FROM fruits; 2.3 查询单个字段 SELECT 列名FR…

Ajax入门与使用

目录 ◆ AJAX 概念和 axios 使用 什么是 AJAX? 怎么发送 AJAX 请求? 如何使用axios axios 函数的基本结构 axios 函数的使用场景 1 没有参数的情况 2 使用params参数传参的情况 3 使用data参数来处理请求体的数据 4 上传图片等二进制的情况…

C数据类型

目录 1. 数据类型分类 2. 整数类型 3. 浮点类型 4. void 类型 5. 类型转换 1. 数据类型分类 在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。 C 中…

格外空间以设计带动凯迪仕品牌价值增长 | 揽获6项国际设计大奖

Kaadas凯迪仕专注于智能锁领域,作为一家集产品研发、制造、品牌、全球销售、安装、售后于一体的全产业链公司,致力于服务全球每一个家庭,以更优质的产品,为全球众多家庭带去高品质生活体验。基于新消费时代背景,传统空…

联想懂的通信×实在智能:共同探索智连融合AI创新发展路径

近日,联想集团副总裁/联想懂的通信CEO王帅、CFO周利军、COO&CPO邢海洋、CGO赵晨、CTO边毅等领导一行莅临杭州实在智能科技有限公司开展研讨座谈。 实在智能创始人&CEO孙林君、联合创始人&COO高扬、联合创始人&CMO张俊九、销售VP&运营商事业线负…

成都直播产业园核心优势全面解读,入驻天府锋巢直播产业基地都有哪些好处?

一文讲清!成都直播产业园核心优势全面解读 企业入驻天府锋巢直播产业基地能获得哪些好处? 锋巢资讯~又来了~~~ 今天,将为您全面解读成都产业园重点特色产业服务(上) 什…

vit细粒度图像分类(五)TransFC学习笔记

1.摘要 细粒度图像具有不同子类间差异小、相同子类内差异大的特点。现有网络模型在处理过程中存在特征提取能力不足、特征表示冗余和归纳偏置能力弱等问题,因此提出一种改进的 Transformer图像分类模型。 首先,利用外部注意力取代原 Transformer模型中的…

Java之Idea中创建Web项目

一、新建动态web项目 1、新建项目 2、选择创建动态web项目 3、项目命名 4、编辑index.jsp 二、配置Tomcat 1、新增tomcat服务器配置 2、选择服务器类型 3、配置服务器参数 4、部署项目 5、完成配置 6、启动运行 7、访问web项目 在浏览器地址栏输入: http://local…

RSTP的P/A机制

如图所示根桥S1和S2之间新添加了一条链路,在当前状态下S2的另外几个端口p2是Alternate端口,p3是指定端口且处于Forwarding状态,p4是边缘端口。新链路连接成功后,P/A机制协商过程如下。 1.P0和P1两个端口马上都先成为指定端口发送RS TBPDU。 2.S2的P1口收到更优的RST BPD…

动手学深度学习(一)深度学习介绍2

目录 二、起源 三、深度学习的成功案例: 四、特点: 五、小结: 二、起源 为了解决各种各样的机器学习问题,深度学习提供了强大的工具。 虽然许多深度学习方法都是最近才有重大突破,但使用数据和神经网络编程的核心思…

幻兽帕鲁服务器出租,腾讯云PK阿里云怎么收费?

幻兽帕鲁服务器价格多少钱?4核16G服务器Palworld官方推荐配置,阿里云4核16G服务器32元1个月、96元3个月,腾讯云换手帕服务器服务器4核16G14M带宽66元一个月、277元3个月,8核32G22M配置115元1个月、345元3个月,16核64G3…

Life is Strange 奇异人生汉化指南

奇异人生汉化指南 引言:在搜索引擎上看了许多的攻略,都无法得到指向性明确的安装步骤,其中最令人不解的分别为汉化包与汉化包的安装地址,以下会以汉化包获取与汉化包安装地址两个维度来确保汉化的正确,以及在最终附上…