全部学科
Python全栈
python
NodeJS全栈
nodejs
📝 1 篇文章 25 道配套习题

容器级WEB组件扩展专题

专题说明

本专题深入讲解SpringMVC容器级组件扩展机制,掌握WebMvcConfigurer接口、自定义组件注册与替换策略。

学习目标

  1. 理解WebMvcConfigurer扩展机制
  2. 掌握各组件的注册与替换方法
  3. 熟练配置自定义参数解析器
  4. 掌握视图控制器与资源处理器配置

学习内容

  • WebMvcConfigurer接口详解
  • 添加自定义拦截器
  • 配置静态资源处理
  • 自定义参数解析器
  • 自定义返回值处理器

学习建议

理解SpringMVC组件扩展的设计模式,结合实际需求灵活扩展框架能力。

📝 配套习题(25 题)

💡 参考答案在文末
判断题
1

AbstractHandlerMapping抽象类提供了拦截器注册的基础实现,自定义HandlerMapping继承该类可以自动获得拦截器支持。

A

B

2

异步请求(@Async或Callable返回值)中,拦截器的afterCompletion方法会在异步处理完成后执行。

A

B

单选题
3

拦截器(Interceptor)和过滤器(Filter)的主要区别是什么?

A

拦截器属于Servlet规范,过滤器属于SpringMVC

B

拦截器可以访问Spring容器Bean,过滤器不能

C

过滤器只能拦截特定URL,拦截器可以拦截所有请求

D

过滤器在拦截器之前执行

4

SpringMVC中负责将请求参数字符串转换为目标类型的组件是什么?

A

HandlerMethodArgumentResolver

B

ConversionService

C

HttpMessageConverter

D

PropertyEditor

5

HandlerInterceptor接口中,哪个方法在Handler执行之后、视图渲染之前执行?

A

preHandle()

B

postHandle()

C

afterCompletion()

D

afterHandle()

6

HandlerAdapter接口的handle方法返回什么对象?

A

String

B

ModelAndView

C

ResponseEntity

D

Object

7

SpringMVC中,DispatcherServlet关联的WebApplicationContext是如何创建的?

A

由ServletContextListener创建

B

由FrameworkServlet.initServletBean()方法创建

C

由DispatcherServlet.init()方法创建

D

由SpringBoot自动创建

8

HandlerMapping接口的核心方法是什么?

A

getHandler(HttpServletRequest request)

B

handle(HttpServletRequest request, HttpServletResponse response)

C

resolveException(HttpServletRequest request, Exception ex)

D

convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType)

9

要扩展SpringMVC的HandlerMapping配置,应该使用哪个接口?

A

WebMvcConfigurer

B

HandlerMappingRegistry

C

RequestMappingHandler

D

MvcConfiguration

10

以下哪个是SpringMVC处理@ExceptionHandler注解的核心组件?

A

ResponseStatusExceptionResolver

B

ExceptionHandlerExceptionResolver

C

DefaultHandlerExceptionResolver

D

SimpleMappingExceptionResolver

多选题
11

WebMvcConfigurer接口中提供了哪些与HandlerMapping相关的配置方法?

A

configurePathMatch()

B

addInterceptors()

C

addViewControllers()

D

extendHandlerExceptionResolvers()

12

RequestMappingHandlerAdapter的invokeHandlerMethod方法中执行了哪些关键操作?

A

创建InvocableHandlerMethod封装Handler方法

B

创建WebDataBinderFactory进行数据绑定

C

创建ModelFactory处理@ModelAttribute和@SessionAttributes

D

调用ServletInvocableHandlerMethod.invokeAndHandle()

13

以下哪些场景适合使用拦截器而不是过滤器?

A

权限校验

B

日志记录

C

获取Spring容器中的Bean进行业务处理

D

跨域CORS处理

14

以下关于HandlerExceptionResolver的说法,哪些是正确的?

A

ExceptionHandlerExceptionResolver处理@ExceptionHandler注解

B

ResponseStatusExceptionResolver处理@ResponseStatus注解

C

DefaultHandlerExceptionResolver处理Spring标准异常

D

所有异常解析器都实现自同一个接口

15

以下哪些是拦截器的典型应用场景?

A

用户登录验证

B

日志记录

C

性能统计(记录请求耗时)

D

异常处理

16

关于SpringMVC容器体系结构,以下说法正确的是?

A

Root WebApplicationContext由ContextLoaderListener初始化

B

Servlet WebApplicationContext由DispatcherServlet初始化

C

Servlet容器可以访问Root容器中的Bean

D

Root容器可以访问Servlet容器中的Bean

17

RequestMappingHandlerMapping的内部数据结构MappingRegistry包含哪些信息?

A

URL路径到HandlerMethod的映射

B

请求方法(GET/POST等)约束

C

请求参数条件

D

请求头条件

18

SpringMVC中实现自定义类型转换的方式有哪些?

A

实现Converter<S,T>接口

B

实现ConverterFactory<S,T>接口

C

实现GenericConverter接口

D

继承PropertyEditorSupport类

填空题
19

自定义异常解析器需要实现____________接口,实现____________方法。如果要将自定义异常解析器添加到SpringMVC中,可以通过实现____________接口的extendHandlerExceptionResolvers方法或配置@Bean注入。

20

SpringMVC数据绑定过程中,____________类负责将请求参数绑定到目标对象,它使用____________进行类型转换,使用____________进行数据校验,绑定结果存储在BindingResult对象中。

21

自定义HandlerAdapter需要实现____________接口的____________方法判断是否支持该Handler,实现____________方法执行Handler并返回ModelAndView。

22

自定义HandlerMapping可以通过实现____________接口或继承____________抽象类。注册自定义HandlerMapping时,需要设置____________属性决定查找顺序,数值越小优先级越高。

23

SpringMVC容器初始化时,Root WebApplicationContext的配置文件路径通过____________参数指定,由____________监听器初始化。Servlet WebApplicationContext的配置类通过____________注解标注,在SpringBoot中由DispatcherServletAutoConfiguration自动配置。

24

SpringMVC中,拦截器接口____________定义了三个方法:____________在Handler执行前返回boolean值决定是否继续,____________在Handler执行后可修改ModelAndView,afterCompletion在请求完成后用于清理资源。

25

配置拦截器需要通过WebMvcConfigurer接口的____________方法添加,可以设置____________指定拦截路径,设置____________排除路径。配置过滤器需要实现Filter接口,并通过FilterRegistrationBean注册到Servlet容器。

参考答案
1.正确 2.错误 3.D 4.B 5.B 6.B 7.B 8.A 9.A 10.B 11.A;B;C 12.A;B;C;D 13.A;B;C 14.A;B;C;D 15.A;B;C 16.A;B;C 17.A;B;C;D 18.A;B;C;D 19.HandlerExceptionResolver;resolveException;WebMvcConfigurer 20.DataBinder;ConversionService;Validator 21.HandlerAdapter;handles;handle 22.HandlerMapping;AbstractHandlerMapping;order 23.contextConfigLocation;ContextLoaderListener;@Configuration 24.HandlerInterceptor;preHandle;postHandle 25.addInterceptors;addPathPatterns;excludePathPatterns
想在手机上练习这套专题?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一个专题 全局异常统一处理专题
下一个专题 → 常用注解基础使用专题
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码