课程介绍:“框架技术”是软件工程专业的核心课程,是本专业限选课,是Java 应用开发课程,是本专业学生就业的主要方向。
说明:框架设计其他章节的习题答案也在此“spring框架设计”专栏。
一、 填空题
- Spring MVC单个拦截器执行顺序中,在【DispatcherServlet 】处理完请求后,才会执行afterCompletion()方法。
- Spring MVC中的拦截器(Interceptor)类似于Servlet中的【 过滤器或Filter】,它主要用于拦截用户请求并作相应的处理。
- 用于如果没有登录系统而直接访问主页面,拦截器会将请求拦截,并转发到【登录页面 】。
- 当有多个拦截器同时工作时,它们的【 preHandle()】方法会按照配置文件中拦截器的配置顺序执行。
- 如果拦截器类中的preHandle()方法的返回值为【 true】,则程序会继续向下执行处理器中的方法。
二、 判断题
- 在实现用户登录权限验证中,需要定义一个登录拦截器,并在拦截器的postHandle()方法中编写业务逻辑进行登录控制。( ×)
- 配置拦截器时,必须将path的属性值设置为/**。(× )
- 多个拦截器时,postHandle()方法和afterCompletion()方法则会按照配置顺序执行。(× )
- 全局拦截器和指定路径下的拦截器不能够同时配置,否则运行时会报错。(× )
- mvc:interceptor中的子元素可以按照任意位置编写。(× )
三、 选择题
- 以下有关Spring MVC配置文件中拦截器的配置说法错误的是。( B)
A: 要使用Spring MVC中拦截器,要先自定义拦截器还需要在配置文件中进行配置。
B: mvc:interceptors元素用于配置一组拦截器,其子元素中定义的是指定路径的拦截器。
C: mvc:interceptors元素中可以同时配置多个mvc:interceptor子元素。
D: mvc:exclude-mapping元素用于配置不需要拦截的路径请求。 - 下面不属于拦截器类中的方法的是。( D)
A: preHandler()
B: postHandle()
C: afterCompletion()
D: afterpletion() - 以下哪个方法可以定义Spring MVC中的拦截器。( D)
A: 继承HandlerInterceptor
B: 实现WebRequestInterceptor
C: 实现HandlerInterceptorAdapter
D: 继承WebRequestInterceptor - 下列关于拦截器的执行流程说法错误的是。( C)
A:程序首先会执行拦截器类中的preHandle()方法。
B:如果preHandle()方法的返回值为true,则程序会继续向下执行处理器中的方法,否则将不再向下执行。
C:在业务处理器(即控制器Controller类)处理完请求后,会执行preHandle()方法。
D:在DispatcherServlet处理完请求后,才会执行afterCompletion()方法。 - 关于用户权限验证的执行流程,说法错误的是。( D)
A:只有登录后的用户才能访问系统中的主页面。
B:如果没有登录系统而直接访问主页面,则拦截器会将请求拦截,并转发到登录页面。
C:如果用户名或密码错误,会在登录页面给出相应的提示信息。
D:当已登录的用户在系统主页中单击“退出”链接时,系统会回到主页面。
四、 简答题
- 请简述拦截器HandlerInterceptor接口中的方法并做说明。
HandlerInterceptor接口中有3个方法:
preHandler()方法:该方法会在控制器方法前执行,其返回值表示是否中断后续操作。当其返回值为true时,表示继续向下执行;当其返回值为false时,会中断后续的所有操作。
postHandle()方法:该方法会在控制器方法调用之后,且解析视图之前执行。可以通过此方法对请求域中的模型和视图做出进一步的修改。
afterCompletion()方法:该方法会在整个请求完成,即视图渲染结束之后执行。可以通过此方法实现一些资源清理、记录日志信息等工作。
整理不易,如有帮助请点赞支持!