首页 > 代码库 > 2017.3.31 spring mvc教程(三)请求映射(静态文件访问、拦截器)

2017.3.31 spring mvc教程(三)请求映射(静态文件访问、拦截器)

 

学习的博客:http://elf8848.iteye.com/blog/875830/

 

我项目中所用的版本:4.2.0。博客的时间比较早,11年的,学习的是Spring3 MVC。不知道版本上有没有变化比较大的功能。

 

spring mvc教程(三)拦截器

 

1.Spring中的拦截器

(1)拦截器接口

Spring提供了拦截器接口。实现这个接口或继承这个类,就能实现自己的拦截器。

1 org.springframework.web.servlet.HandlerInterceptor接口
2 org.springframework.web.servlet.handler.HandlerInterceptorAdapter适配器
1 public class MyInteceptor implements HandlerInterceptor {     
2     //3 } 

 

HandlerInteceptor有3个方法:分别实现预处理、后处理(调用了Service并返回ModelAndView,但未进行页面渲染)、返回处理(已经渲染了页面)。

1 在preHandle中,可以进行编码、安全控制等处理;
2 在postHandle中,有机会修改ModelAndView;
3 在afterCompletion中,可以根据ex是否为null判断是否发生了异常,进行日志记录。 

 

参数中的Object handler是下一个拦截器。

1 //Action之前执行
2  public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler);
3  
4 //生成视图之前执行
5  public void postHandle(HttpServletRequest request,HttpServletResponse response, Object handler,ModelAndView modelAndView);
6  
7 //最后执行,可用于释放资源
8  public void afterCompletion(HttpServletRequest request,HttpServletResponse response, Object handler, Exception ex)

 

(2)拦截器的执行过程

 

2017.3.31 spring mvc教程(三)请求映射(静态文件访问、拦截器)