【SpringMVC】SpringMVC面试题总结

news/2024/7/24 2:54:45 标签: SpringMVC, java

SpringMVC面试题

SpringMVC_2">1、SpringMVC的理解

MVC原理图


SpringMVC_8">2、SpringMVC的工作流程

在这里插入图片描述


SpringMVC_12">3、SpringMVC的常用注解

  • @RequestMapping: 用于处理请求url映射的注解,可用于类或方法上,用于类上,则表示类中的所有响应请求的方法都是以该地址作为父路径。
  • @RequestBody: 注解实现接收http请求的json数据,将json转换为java对象
  • @ResponseBody: 注解实现将conreoller方法返回对象转化为json对象响应给客户

SpringMVC_19">4、SpringMVC的九大内置组件

  • HandlerMapping
    • 根据request请求找到相应的处理器。因为Handler (Controller) 有两种形式,一种是基于类的Handler,另一种是基于Method的Handler (也就是我们常用的)。
  • HandlerAdapter
    • 调用Handler的适配器。如果把Handler (Controller) 当做工具的话,那么HandlerAdapter就相当于干活的工人。
  • HandlerExceptionResolver
    • 对异常的处理
  • ViewResolver
    • 用来将String类型的视图名和Locale解析为View类型的视图
  • RequestToViewNameTranslator
    • 有的Handler (Controller) 处理完后没有设置返回类型,比如是void方法,这是就需要从request请求中获取viewName
  • LocaleResolver
    • 从request中解析出Locale。Locale表示一个区域,比如zh-cn,对不同的区域的用户,显示不同的结果,这就是i18n (SpringMVC中有具体的拦截器LocaleChangelnterceptor)
  • ThemeResolver
    • 主题解析,这种类似于我们手机更换主题,不同的U1,css等
  • MultipartResolver
    • 处理上传请求,将普通的request封装成MultipartHttpServletRequest
  • FlashMapManager
    • 用于管理FlashMap,FlashMap用于在redirect重定向中传递参数

SpringMVCSpringBoot_41">5、Spring、SpringMVC、SpringBoot的区别

  • SpringMVC和Spring:
    • Spring是一个一站式的轻量级的java开发框架,核心是控制反转(IOC)和面向切面(AOP),针对于开发的WEB层(SpringMVC)、业务层(IOC)、持久层(JDBCTemplate)等都提供了多种配置解决方案。
    • SpringMVC是Spring基础之上的一个MVC框架,主要处理web开发的路径映射和视图渲染,属于Spring框架中WEB层开发的一部分。
  • SpringMVC和SpringBoot
    • SpringMVC属于一个企业WEB开发的MVC框架,涵盖面包括前端视图开发、文件配置、后台接口逻辑开发等,XML、config等配置相对比较繁琐复杂;
    • SpringBoot框架相对于SpringMVC框架来说,更专注于开发微服务后台接口,不开发前端视图,同时遵循默认优于配置,简化了插件配置流程,不需要配置xml,相对SpringMVC,大大简化了配置流程;


http://www.niftyadmin.cn/n/147551.html

相关文章

Matlab具有状态相关延迟的 DDE

使用ddesd求解具有状态相关延迟的 DDE(延迟微分方程)系统。这个 DDE 系统被 Enright 和 Hayashi [1] 用作测试问题。 方程组是 y1′(t)=y2(t), y

Vector - CAPL - 字符串复制与替换函数

在开发脚本过程中,经常会涉及到字符串的复制与替换处理,相较于C语言,CAPL中做了些许改动,并提供了一些范例供我们学习,方便我们更加快速的去完成脚本开发。下面介绍的主要是字符串的复制与替换,我们使用的时…

小迪安全day04

小迪安全day04 记:今天刚刚结束四级考试,希望四级稳过!!!(ps:开学考终于要差不多了,还差一个英语期末考试) 一结束考试,就开始搞喜欢的安全了!&…

Python中类的定义和使用细讲

文章目录前言一、定义类二、创建类的实例三、创建 _ _ init _ _() 方法四、创建类的成员并访问1. 创建实例方法并访问2. 创建数据成员并访问五、访问限制前言 在 Python 中,类表示具有相同属性和方法的对象的集合。在使用类时,需要先定义类,然…

底层原理计划--线程与线程池

线程 线程安全的集合 Vector hashtable 》synchronized 使用Collections包装成线程安全,本质上是将原本的集合在执行之前加上了synchronized(){}的对象锁,将对象先锁定再来运行。 》synchronized Synchronize lock区别 synchronized jvm 自动释放锁 L…

职业规划——我是怎么在第一份工作中就能做到运维部门副经理的?

这个标题一出来,想必应该就有相当一部分人在无限嘴嗨: “what?这人装啥B,吹B也不带打草稿的?” “还以为是哪个大厂出来的?就一无名小公司,坐上去不停容易的嘛,还发出来博人眼球干啥…

ubuntu 20.04.3 LTS安装RabbitVCS SVN图形化客户端

我们一般在Windows环境下用的SVN是TortoiseSVN,如果想在Linux下使用SVN,那么图形化界面的RabbitVCS客户端软件是一个不错的选择,他和TortoiseSVN的功能基本一样。 其官网下载地址为http://wiki.rabbitvcs.org/wiki/download,Rabbi…

JAVA 上门按摩系统源码运营方案?

一、市场分析随着人们对健康生活的越来越重视,按摩行业也得到了迅猛发展,在市场上所占比例不断提高。JAVA 上门按摩系统源码作为一款便利用户掌握技能,小投入大收益的项目,市场前景广阔。二、优势分析1. 便利用户:JAVA…