首页 > 其他分享 >SpringMVC常见面试题

SpringMVC常见面试题

时间:2024-03-31 14:29:59浏览次数:16  
标签:面试题 调用 请求 SpringMVC 常见 DispatcherServletDispatcherServlet 视图 HandlerAdapter 处理器

1:Spring mvc执行流程
回答:
版本1:视图版本,jsp
在这里插入图片描述

  1. 用户发送出请求到前端控制器DispatcherServlet
  2. DispatcherServlet收到请求调用HandlerMapping(处理映射器)
  3. HandlerMapping找到具体的处理器,生成处理器对象及处理器拦截器(如果有),再一起返回给DispatcherServlet
  4. DispatcherServlet调用HandlerAdapter(处理器适配器)
  5. HandlerAdapter经过适配调用具体的处理器(Handler/Controller)
  6. Controller执行完成返回ModelAndView对象
  7. HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet
  8. DisatcherServlet将ModelAndView传给ViewReslover(视图解析器)
  9. ViewReslover解析后返回具体View(视图)
  10. DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)
  11. DispatcherServlet响应用户
    版本2:前后端开发,接口开发
  12. 用户发送出请求到前端控制器DispatcherServlet
  13. DispatcherServlet收到请求调用HandlerMapping(处理映射器)
  14. HandlerMapping找到具体的处理器,生成处理器对象及处理器拦截器(如果有),再一起返回给DispatcherServlet
  15. DispatcherServlet调用HandlerAdapter(处理器适配器)
  16. HandlerAdapter经过适配调用具体的处理器(Handler/Controller)
  17. 方法上添加注解@ResponseBody
  18. 通过HttpMessageConverter来返回结果转换为JSON并响应

2:Spring MVC常见注解有哪些
回答:
在这里插入图片描述

@RequestMapping:用于映射请求路径;
@RequestBody:注解实现接收http请求的json数据,将json转换为java对象;
@RequestParam:指定请求参数的名称;
@PathViriable:从请求路径下中获取请求参数(/user/{id}),传递给方法的形式参数;@ResponseBody:注解实现将controller方法返回对象转化为json对象响应给客户端。@RequestHeader:获取指定的请求头数据,还有像@PostMapping、@GetMapping这些。

标签:面试题,调用,请求,SpringMVC,常见,DispatcherServletDispatcherServlet,视图,HandlerAdapter,处理器
From: https://blog.csdn.net/qq_62669235/article/details/137186226

相关文章

  • 【Java编程】【算法面试题】【数组轮转】给定一个整数数组 nums,将数组中的元素向右轮
    原题:给定一个整数数组nums,将数组中的元素向右轮转k个位置,其中k是非负数。例如:nums=[1,0,-1,2,3]k=1预期结果:nums=[3,1,0,-1,2]k=2预期结果:nums=[2,3,1,0,-1]以此类推。。。【本文思路解析】:1.不实用额外的数组,会多一部分开销;2.每次轮转,位置移动1位,共计移......
  • 面试题:JVM 调优
    一、JVM参数设置1.tomcat的设置vm参数修改TOMCAT_HOME/bin/catalina.sh文件,如下图JAVA_OPTS="-Xms512m-Xmx1024m"2.springboot项目jar文件启动通常在linux系统下直接加参数启动springboot项目nohupjava-Xms512m-Xmx1024m-jarxxxx.jar--spring.pro......
  • 常见面试算法题-跳格子
    ■ 题目描述【跳格子】地上共有N个格子,你需要跳完地上所有的格子,但是格子间是有强依赖关系的,跳完前一个格子后,后续的格子才会被开启,格子间的依赖关系由多组steps数组给出,steps[0]表示前一个格子,steps[1]表示steps[0]可以开启的格子:比如[0,1]表示从跳完第0个格子以后第1个......
  • 【Java编程】【算法面试题】【数组合并】以数组 intervals 表示若干个区间的集合,其中
    原始题目:以数组intervals表示若干个区间的集合,其中单个区间为intervals[i]=[starti,endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。......
  • 常见术语
    肉鸡:被攻击者控制的智能设备抓鸡:控制机器使之成为肉鸡僵尸网络:采用一到多种传播手段使大量主机感染病毒,实现一对多控制的网络【同时他也是Ddos/垃圾邮件等利用的基础环境】木马:正常程序的表象,欺骗或诱导安装并隐藏在用户计算机中,但当这些程序运行可以实现控制用户计算机的目的......
  • U-boot常见命令使用
    前言:绝大多数嵌入式开发都使用uboot作为bootloader,uboot可以看作是一个框架,在编译时需要指定设备文件才能够编译得到对应板子的uboot,这个设备文件就相当于参数表,描述了这个板子长什么样子。在uboot里不用记住所有命令的用法,当需要查看某个命令的用法和介绍时,输入?命令或者help......
  • 【数据结构】用C语言实现单链表及其常见操作
    【数据结构】用C语言实现单链表及其常见操作链表是一种常用的基础数据结构,可以快速插入和删除数据,但是不能随机访问。那么它在内存中是怎么存储的呢?它和数组不同,数组在内存中是连续存储的,而链表不一定是连续的,它们之间是通过指针来连接的。指针是C语言中最重要的特性之一。那......
  • 【Redis】Redis 生产问题。如何确保缓存和数据库数据的一致性? 常见的缓存更新策略?
    目录缓存穿透缓存穿透解决办法缓存击穿击穿解决办法?缓存穿透和缓存击穿的区别?缓存雪崩雪崩解决办法?如何确保缓存和数据库数据的一致性?常见的缓存更新策略?缓存穿透定义:缓存穿透说简单点就是大量请求的key是不合理的,根本不存在于缓存中,也不存在于数据库中。这......
  • 面试题:Spring Boot Starter的功能与使用场景
    SpringBootStarter是SpringBoot框架为了简化项目的初始化和配置工作而设计的一种模块化依赖管理方式。它主要具有以下几个关键功能和使用场景:功能:1.依赖管理每个Starter都是一组相关的依赖项集合,这些依赖项都是为了实现特定功能而预先配置好的。例如,`spring-boo......
  • Python面试题
    1、现有100万行的交易数据文件tansamt.txt,每行显示1个交易金额(首行无字段信息),样例如下。数据文件存放在服务器g:\data目录。203.495-5091800请通过Python脚本,把最大和最小的交易金额通过print命令打印出来:file_path=r'g:\data\tans_amt.txt'#打开文件并读取所有......