Spring MVC详解与应用实践.pdfVIP

  • 0
  • 0
  • 约3.32千字
  • 约 14页
  • 2026-03-12 发布于江苏
  • 举报

SpringMVC

SpringMVC拦截器

Jame老师QQ

本章目标

n拦截器简介

n拦截器接口

n拦截器适配器

n拦截器运行流程

n拦截器的实现

n拦截器的应用

拦截器简介

•SpringMVC的处理器拦截器类似于Servlet开发中的过滤器

Filter,用于对处理器进行预处理和后处理。

常见应用场景:

1、日志记录:记录请求信息的日志,以便进行信息监控、

信息统计、计算PV(PageView)等。

2、权限检查:如登录检测,进入处理器检测检测是否登录,

如果没有直接返回到登录页面;

3、性能监控:有时候系统在某段时间莫名其妙的慢,可以

通过拦截器在进入处理器之前记录开始时间,在处理完后记录结

束时间,从而得到该请求的处理时间;

4、通用行为:读取cookie得到用户信息并将用户对象放入

请求,从而方便后续流程使用,还有如提取Locale、Theme信息

等,只要是多个处理器都需要的即可使用拦截器实现。

拦截器简介

5、OpenSessionInView:如Hibernate,在进入处理器打开

Session,在完成后关闭Session。

拦截器接口

packageorg.springframework.web.servlet;

publicinterfaceHandlerInterceptor{

booleanpreHandle(HttpServletRequestrequest,HttpServletResponse

response,Objecthandler)

throwsException;

voidpostHandle(HttpServletRequestrequest,HttpServletResponse

response,Objecthandler,ModelAndViewmodelAndView)

throwsException;

voidafterCompletion(HttpServletRequestrequest,HttpServletResponse

response,Objecthandler,Exceptionex)throwsException;

}

拦截器接口

preHandle:预处理回调方法,实现处理器的预处理(如登录检查),

第三个参数为响应的处理器(Controller);

返回值:true表示继续流程(如调用下一个拦截器或处理

器);

false表示流程中断(如登录检查失败),不会继续调用其他

的拦截器或处理器,此时我们需要通过response来产生响应;

postHandle:后处理回调方法,实现处理器的后处理(但在渲染视

图之前),此时我们可以通过modelAndView(模型和视图对象)对

模型数据进行处理或对视图进行处理,modelAndView也可能为null。

拦截器接口

•fterCompletion:整个请求处理完毕回调方法,即在视图渲染完毕

时回调,如性能监控中我们可以在此记录结束时间并输出消耗时间

,还可以进行一些资源清理,类似于try-catch-finally中的finally,

但仅调用处理器执行链中preHandle返回tr

文档评论(0)

1亿VIP精品文档

相关文档