拦截器原理与实战专项测试
考察知识点
- HandlerInterceptor接口方法
- preHandle前置拦截处理
- postHandle后置拦截处理
- afterCompletion完成回调
- 拦截器配置与路径匹配
- 拦截器链执行顺序
SpringMVC拦截器的主要作用是什么?
SpringMVC拦截器是AOP(面向切面编程)思想在Web层的具体应用。
拦截器(Interceptor)和过滤器(Filter)的主要区别是什么?
以下关于拦截器和过滤器的对比,哪些描述是正确的?
HTTP请求的处理流程中,各组件的执行顺序为:
- ______(Filter):Servlet容器级别的拦截
- _________________:SpringMVC核心控制器
- ______(Interceptor):SpringMVC级别拦截
- __________:业务处理控制器
实现SpringMVC拦截器需要实现哪个接口?
HandlerInterceptor接口的三个方法中,哪个方法需要返回boolean值来决定是否继续执行后续流程?
实现HandlerInterceptor接口时,必须实现所有三个方法(preHandle、postHandle、afterCompletion)。
HandlerInterceptor接口的preHandle方法签名:
boolean preHandle(
!!1_HttpServletRequest!! request,
!!2_HttpServletResponse!! response,
!!3_Object!! handler
) throws Exception;
其中handler参数表示即将执行的__________方法(Handler对象)。
当拦截器的preHandle方法返回false时,会发生什么?
在preHandle方法中,可以通过handler参数获取Controller类名和方法名等详细信息。
在preHandle方法中实现登录验证,当用户未登录时,最合适的处理方式是?
拦截器的postHandle方法在哪个时机执行?
当Controller方法使用@ResponseBody或@RestController返回JSON数据时,postHandle方法中的ModelAndView参数为null。
postHandle方法签名:
void postHandle(
!!1_HttpServletRequest!! request,
!!2_HttpServletResponse!! response,
!!3_Object!! handler,
!!4_ModelAndView!! modelAndView
) throws Exception;
可以通过修改____________对象来添加通用视图数据或修改视图名称。
拦截器的afterCompletion方法有什么特点?
afterCompletion方法是拦截器执行流程中最后执行的方法,适合进行资源清理和异常日志记录。
afterCompletion方法签名:
void afterCompletion(
!!1_HttpServletRequest!! request,
!!2_HttpServletResponse!! response,
!!3_Object!! handler,
!!4_Exception!! ex
) throws Exception;
参数______表示请求处理过程中抛出的异常,如果没有异常则为______。
在SpringMVC中使用Java配置方式注册拦截器,需要实现哪个接口的方法?
在InterceptorRegistry中配置拦截器时,addPathPatterns方法的作用是?
📝 发现内容有误?点击此处直接编辑
长按或扫描二维码,立即体验