博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC系列(十二)自定义拦截器
阅读量:6904 次
发布时间:2019-06-27

本文共 1958 字,大约阅读时间需要 6 分钟。

Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlerInterceptor接口

– preHandle():这个方法在业务处理器处理请求之前被调用,在该方法中对用户请求 request 进行处理。如果程序员决定该拦截器对请求进行拦截处理后还要调用其他的拦截器,或者是业务处理器去进行处理,则返回true;如果程序员决定不需要再调用其他的组件去处理请求,则返回false。
– postHandle():这个方法在业务处理器处理完请求后,但是DispatcherServlet 向客户端返回响应前被调用,在该方法中对用户请求request进行处理。
– afterCompletion():这个方法在 DispatcherServlet 完全处理完请求后被调用,可以在该方法中进行一些资源清理的操作。

1.实现HandlerInterceptor

1 package com.study.springmvc.interceptors; 2  3 import javax.servlet.http.HttpServletRequest; 4 import javax.servlet.http.HttpServletResponse; 5  6 import org.springframework.web.servlet.HandlerInterceptor; 7 import org.springframework.web.servlet.ModelAndView; 8  9 public class FirstInterceptor implements HandlerInterceptor{10 11     /**12      * 该方法在目标方法之前被调用.13      * 若返回值为 true, 则继续调用后续的拦截器和目标方法. 14      * 若返回值为 false, 则不会再调用后续的拦截器和目标方法. 15      * 16      * 可以考虑做权限. 日志, 事务等. 17      */18     @Override19     public boolean preHandle(HttpServletRequest request,20             HttpServletResponse response, Object handler) throws Exception {21         System.out.println("[FirstInterceptor] preHandle");22         return true;23     }24 25     /**26      * 调用目标方法之后, 但渲染视图之前. 27      * 可以对请求域中的属性或视图做出修改. 28      */29     @Override30     public void postHandle(HttpServletRequest request,31             HttpServletResponse response, Object handler,32             ModelAndView modelAndView) throws Exception {33         System.out.println("[FirstInterceptor] postHandle");34     }35 36     /**37      * 渲染视图之后被调用. 释放资源38      */39     @Override40     public void afterCompletion(HttpServletRequest request,41             HttpServletResponse response, Object handler, Exception ex)42             throws Exception {43         System.out.println("[FirstInterceptor] afterCompletion");44     }45 46 }

2.在springmvc.xml配置定义的拦截器

1 
2
3
4 5

 

转载于:https://www.cnblogs.com/leeSmall/p/7847063.html

你可能感兴趣的文章
oracle 11g rac安装之oracle database报错解决
查看>>
linux固定用户访问ip限制
查看>>
华为SSH配置
查看>>
比较好用的dns列表
查看>>
linux下mysql的root密码忘记解决方法
查看>>
多机调度问题-贪心算法
查看>>
sql_trace的使用
查看>>
我的友情链接
查看>>
WordPress 禁用自动保存、文章多个版本
查看>>
JDK环境配置
查看>>
修改Linux中的root密码
查看>>
搭建本地yum仓库
查看>>
CentOS7 源码编译安装稳定LNMP环境 支持Zabbix
查看>>
常用软件包下载网址
查看>>
Vagrant中Apache或Nginx,修改css/js等静态文件不生效的解决方案
查看>>
Arduino学习笔记01——单个LED灯闪烁
查看>>
学习linux计划书
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Hapoxy--基础篇
查看>>