Spring boot配置拦截器(十四)
来源:互联网 发布:有没有淘宝卖家骗货 编辑:程序博客网 时间:2024/06/06 01:21
SpringBoot使用拦截器
SpringBoot的拦截器只能拦截流经DispatcherServlet的请求,对于自定义的Servlet无法进行拦截。
SpringMVC中的拦截器有两种:HandlerInterceptor和WebMvcInterceptor。这两个接口都定义了请求之前、请求之中、请求之后三个函数,以HandlerInterceptor为例进行说明:
- public boolean preHandle(HttpServletRequest req, HttpServletResponse httpServletResponse, Object o)
- public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView)
- public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e)
HandlerInterceptor的函数返回值都是boolean,一旦返回false,就不再处理这个请求,所以它真正具有拦截功能。而WebMvcInterceptor作用只是进行初始化,它的三个函数都是void类型的。
@WebServlet 2 public class ActionInterceptor implements HandlerInterceptor { 3 4 @Override 5 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) 6 throws Exception { 7 // System.out.println(">>>MyInterceptor1>>>>>>>在请求处理之前进行调用(Controller方法调用之前)"); 8 9 // 获取系统时间10 Calendar ca = Calendar.getInstance();11 int hour = ca.get(Calendar.HOUR_OF_DAY);12 // 设置限制运行时间 0-4点13 if (hour < 4) {14 return true;15 }16 return false;17 }18 19 @Override20 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,21 ModelAndView modelAndView) throws Exception {22 // System.out.println(">>>MyInterceptor1>>>>>>>请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后)");23 24 }25 26 @Override27 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)28 throws Exception {29 // System.out.println(">>>MyInterceptor1>>>>>>>在整个请求结束之后被调用,也就是在DispatcherServlet30 // 渲染了对应的视图之后执行(主要是用于进行资源清理工作)");31 }32 }
拦截器使用: 关于注解 我使用的是@Component 其实也可能声明成配置
1 @Component 2 public class ApplicationConfig {extends WebMvcConfigurerAdapter 3 4 @Override 5 public void addInterceptors(InterceptorRegistry registry) { 6 // 多个拦截器组成一个拦截器链 7 // addPathPatterns 用于添加拦截规则 8 // excludePathPatterns 用户排除拦截 9 registry.addInterceptor(new ActionInterceptor()).addPathPatterns("/service/extract/json/**");10 super.addInterceptors(registry);11 }12 }
阅读全文
0 0
- Spring boot配置拦截器(十四)
- Spring boot配置拦截器
- Spring Boot配置拦截器
- Spring Boot配置拦截器
- Spring Boot拦截器配置
- Spring Boot 拦截器
- Spring Boot 拦截器
- Spring Boot 拦截器
- Spring Boot 拦截器
- Spring Boot 拦截器
- Spring Boot 拦截器
- Spring-Boot拦截器
- spring boot 拦截器
- Spring Boot拦截器
- spring boot 拦截器
- Spring Boot 拦截器
- Spring Boot 拦截器
- Spring Boot 拦截器
- The First
- 计算机网络TCP与UDP的区别
- 顺序栈的入栈出栈操作
- MFC中使用CEF3:比较完整的demo
- 正则表达式字符集整理
- Spring boot配置拦截器(十四)
- LightOJ 1197
- Week04_day02 IO流(上) File和字节流
- Java8 HashMap源码解析
- Shell
- Thinkphp3.2对于URL访问模式PATHINFO 模式导入css,js文件冲突问题详解
- 第十一周项目4
- 最新版网页浏览器Flash插件离线版安装程序下载
- 链栈的进栈出栈操作