博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Springboot中拦截器的使用
阅读量:6480 次
发布时间:2019-06-23

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

hot3.png

① 创建ErrorInterceptor类,implements HandlerInterceptor

package com.tenement.utils.interceptor; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.stereotype.Controller;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView; /** * 自定义拦截器 *  * @author wk * @create 2018/02/27 */@Controllerpublic class ErrorInterceptor implements HandlerInterceptor { 	private static final Log logger = LogFactory.getLog(ErrorInterceptor.class); 	/*	 * preHandle方法	 * 	 *	 */	@Override	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)			throws Exception {		logger.info("【-MyInterceptor1,在请求处理之前进行调用(controller方法调用之前)-】");		return true;	} 	@Override	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,			ModelAndView modelAndView) throws Exception {		logger.info("【-MyInterceptor1,请求处理之后进行调用,但是在视图被渲染之前(controller方法调用之后)-】");		if(response.getStatus()==500){			modelAndView.setViewName("/view/base/errorpage/500.html");			/*			 * setViewName(String viewName);			 * 为此ModelAndView设置视图名称,由DispatcherServlet通过ViewResolver解析。 将覆盖任何预先存在的视图名称或视图。			 */		}else if(response.getStatus()==404){			modelAndView.setViewName("/view/base/errorpage/404.html");		}	} 	@Override	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)			throws Exception {		logger.info("【-MyInterceptor1,在整个请求结束之后被调用,也就是在DispatcherServlet渲染了对应的视图之后执行(主要用于资源清理工作)-】");	} }

② 创建MyWebAppConfigurer extends WebMvcConfigurerAdapter

package com.tenement.utils.interceptor; import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configurationpublic class MyWebAppConfigurer extends WebMvcConfigurerAdapter { 	@Override	public void addInterceptors(InterceptorRegistry registry) {		registry.addInterceptor(new ErrorInterceptor()).addPathPatterns("/**");		super.addInterceptors(registry);	}	/*	 * 对页面的静态资源也会进行拦截,导致异常	 * 	 */}

 

转载于:https://my.oschina.net/ydsakyclguozi/blog/2872579

你可能感兴趣的文章
应急响应工作苦干不如巧干 警报驱动的安全运营该淘汰了
查看>>
苹果为什么坚持不解锁 iPhone ?
查看>>
做自动化测试要考虑的问题
查看>>
Qt之图形(组合)
查看>>
《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一2.4 部署应用
查看>>
《Adobe Premiere Pro CC完全剖析》——工作流程概述
查看>>
4种方法让SpringMVC接收多个对象(转:http://blog.csdn.net/lutinghuan/article/details/46820023)...
查看>>
《实施Cisco统一通信VoIP和QoS(CVOICE)学习指南(第4版)》一1.6 习题
查看>>
《人工智能:计算Agent基础》——1.9 参考文献及进一步阅读
查看>>
《Python爬虫开发与项目实战》——1.2 搭建开发环境
查看>>
《Unity开发实战》——3.4节创建高光纹理贴图
查看>>
《Android框架揭秘》——2.1节主机环境构成
查看>>
Mybatis 通用 Mapper 2.2.0 发布
查看>>
《Adobe After Effects CC 经典教程(彩色版)》——1.9 自定义工作区
查看>>
《CCNP ROUTE 300-101认证考试指南》——2.12节定义关键术语
查看>>
linux显示设置系统时间命令date详解
查看>>
刘强东:五年后,给你送货的可能都是机器人
查看>>
苹果推出新博客,宣传全新编程语言 Swift
查看>>
《VMware 网络技术:原理与实践》—— 1.3 小结
查看>>
过去 10 年,Google 的网络架构是如何进化的?
查看>>