全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📝 1 篇文章 22 道配套习题

MVC核心源码执行流程专题

专题说明

本专题深入分析SpringMVC核心源码,解析DispatcherServlet请求处理流程、九大组件初始化与工作机制。

学习目标

  1. 理解DispatcherServlet源码结构
  2. 掌握九大组件初始化流程
  3. 分析请求处理完整链路
  4. 理解HandlerMapping与HandlerAdapter工作机制

学习内容

  • DispatcherServlet源码分析
  • 九大组件初始化机制
  • HandlerMapping源码
  • HandlerAdapter源码
  • ViewResolver源码

学习建议

结合源码调试理解SpringMVC底层原理,重点关注核心组件的交互流程。

📝 发现内容有误?点击此处直接编辑

📝 配套习题(22 题)

1
单选题

在SpringMVC中,HandlerMapping的主要职责是什么?

A

执行Controller方法并返回ModelAndView

B

根据请求URL映射到对应的Handler(Controller方法)

C

解析视图并渲染响应结果

D

处理异常并返回错误页面

2
多选题

以下哪些是SpringMVC内置的HandlerMapping实现?

A

RequestMappingHandlerMapping

B

BeanNameUrlHandlerMapping

C

SimpleUrlHandlerMapping

D

ControllerHandlerMapping

3
判断题

HandlerMapping的getHandler方法返回的HandlerExecutionChain对象中包含了拦截器列表。

A

B

4
多选题

RequestMappingHandlerMapping在启动时会扫描所有带有@Controller注解的类,并解析其中的@RequestMapping方法。以下关于其内部实现的说法正确的是?

A

使用MappingRegistry存储所有URL映射关系

B

通过实现HandlerMethodArgumentResolver来解析方法参数

C

扫描过程在afterPropertiesSet回调中触发

D

每个映射方法都会生成一个HandlerMethod对象

5
单选题

SpringMVC中HandlerAdapter的主要作用是什么?

A

将请求URL映射到对应的Controller方法

B

调用具体的Handler方法并处理返回值

C

将请求参数绑定到方法参数

D

处理Controller抛出的异常

6
多选题

以下哪些是SpringMVC内置的HandlerAdapter实现?

A

RequestMappingHandlerAdapter

B

HttpRequestHandlerAdapter

C

SimpleControllerHandlerAdapter

D

SimpleServletHandlerAdapter

7
填空题

RequestMappingHandlerAdapter在执行Handler方法时,使用______________________类来封装方法调用,并通过________________________解析方法参数,通过________________________处理方法返回值。

8
单选题

当配置了多个拦截器时,它们的preHandle方法的执行顺序是怎样的?

A

按配置顺序正序执行

B

按配置顺序倒序执行

C

随机执行

D

按拦截器类名字母顺序执行

9
多选题

关于拦截器的三个方法preHandle、postHandle、afterCompletion的执行顺序,以下说法正确的是?

A

preHandle按配置顺序正序执行

B

postHandle按配置顺序倒序执行

C

afterCompletion按配置顺序倒序执行

D

afterCompletion只有在请求成功完成时才执行

10
判断题

如果拦截器A的preHandle返回false,则拦截器A的afterCompletion方法仍然会被执行。

A

B

11
单选题

SpringMVC中,DispatcherServlet处理异常时默认使用哪个组件?

A

HandlerExceptionResolver

B

ViewResolver

C

HandlerAdapter

D

LocaleResolver

12
多选题

以下哪些是SpringMVC内置的异常处理方式?

A

@ExceptionHandler注解

B

@ControllerAdvice注解

C

实现HandlerExceptionResolver接口

D

@ResponseStatus注解

13
填空题

在SpringMVC异常处理流程中,DispatcherServlet会遍历所有注册的________________________,调用其________________方法尝试解析异常,如果返回____________对象则表示异常已被处理。

14
单选题

SpringMVC中,将请求参数绑定到方法参数的组件是什么?

A

HandlerMapping

B

HandlerMethodArgumentResolver

C

HandlerMethodReturnValueHandler

D

ViewResolver

15
多选题

以下哪些是SpringMVC内置的HandlerMethodArgumentResolver实现?

A

RequestParamMethodArgumentResolver

B

PathVariableMethodArgumentResolver

C

RequestResponseBodyMethodProcessor

D

SessionAttributeMethodArgumentResolver

16
填空题

SpringMVC中,使用________________注解触发参数校验时,需要配置________________________作为校验器,校验失败会将错误信息封装到_____________对象中。

17
单选题

SpringMVC中,处理Controller方法返回值的组件是什么?

A

HandlerMethodArgumentResolver

B

HandlerMethodReturnValueHandler

C

ViewResolver

D

HandlerAdapter

18
多选题

以下哪些是SpringMVC内置的HandlerMethodReturnValueHandler实现?

A

ModelAndViewMethodReturnValueHandler

B

ViewNameMethodReturnValueHandler

C

RequestResponseBodyMethodProcessor

D

HttpEntityMethodProcessor

19
填空题

当Controller方法标注_____________时,返回值会由____________________进行序列化转换,SpringMVC默认使用_______作为JSON转换器,具体实现类为________________________

20
单选题

DispatcherServlet初始化策略组件的入口方法是哪个?

A

init()

B

onRefresh()

C

afterPropertiesSet()

D

service()

21
多选题

DispatcherServlet在initStrategies()方法中初始化了哪些策略组件?

A

MultipartResolver

B

LocaleResolver

C

ThemeResolver

D

HandlerMapping

22
填空题

DispatcherServlet初始化时,如果没有显式配置某个策略组件,会从________________________文件中读取默认实现类,该文件位于________________________包下。如果需要自定义组件,可以通过实现________________接口进行配置。

← 上一个专题 MVC核心思想与执行流程专题
下一个专题 → 全局异常统一处理专题

📝 发现内容有误?点击此处直接编辑

想查看更多习题和详细解析?
小程序提供完整的题库和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库