SpringMvc 拦截器
2019-12-14 16:04:50来源:博客园 阅读 ()
SpringMvc 拦截器
SpringMvc 拦截器介绍
- SpringMVC拦截器(Interceptor)实现对每一个请求处理前后进行相关的业务处理,类似与servlet中的Filter。
- SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor来实现的。
- 在SpringMVC中定义一个Interceptor非常简单,主要有4种方式:
1)实现Spring的HandlerInterceptor接口;
2)继承实现了HandlerInterceptor接口的类,比如Spring 已经提供的实现了HandlerInterceptor 接口的抽象类HandlerInterceptorAdapter;
3)实现Spring的WebRequestInterceptor接口;
4)继承实现了WebRequestInterceptor的类;
定义拦截器
实现HandlerIntercepter接口:
public class MyHandlerIntercepter1 implements HandlerInterceptor{ //Handler执行前调用 //应用场景:登录认证、身份授权 //返回值为true则是放行,为false是不放行 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return false; } //进入Handler开始执行,并且在返回ModelAndView之前调用 //应用场景:对ModelAndView对象操作,可以把公共模型数据传到前台,可以统一指定视图 @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } //执行完Handler之后调用 //应用场景:统一异常处理、统一日志处理 @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } }
配置拦截器
SpringMvc 拦截器是绑定在HandlerMapping中的。即:如果某个HandlerMapping中配置拦截,则该HandlerMapping映射成功的Handler会使用该拦截器。
针对单个HandlerMapping配置
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"> <property name="interceptors"> <list> <ref bean="interceptor" /> </list> </property> </bean> <bean id="interceptor" class="com.cyb.ssm.interceptor.MyHandlerInterceptor" />
全局拦截器配置(推荐)
SpringMvc的全局拦截器配置,其实是把配置的拦截器注入到每个已初始化的HandlerMapping中了。
<!-- 配置全局mapping的拦截器 --> <mvc:interceptors> <!-- 公共拦截器可以拦截所有请求,而且可以有多个 --> <bean class="com.cyb.ssm.interceptor.MyHandlerInterceptor1" /> <bean class="com.cyb.ssm.interceptor.MyHandlerInterceptor2" /> <!-- 如果有多个拦截器,则按照顺序进行配置 --> <mvc:interceptor> <!-- /**表示所有URL和子URL路径 --> <mvc:mapping path="/test/**" /> <!-- 特定请求的拦截器只能有一个 --> <bean class="com.cyb.ssm.interceptor.MyHandlerInterceptor3" /> </mvc:interceptor> </mvc:interceptors>
多拦截器拦截规则
如果有多个拦截器,那么配置到springmvc.xml中最上面的拦截器,拦截优先级最高。
原文链接:https://www.cnblogs.com/chenyanbin/p/12041228.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- springboot~拦截器的使用场景 2020-05-28
- 蚂蚁金服这套SpringMvc面试题你懂多少(面试必刷) 2020-05-27
- SpringMVC高级-拦截器如何正确运用?案例详解 2020-05-21
- Spring拦截器WebMvcConfigurer针对Swagger的拦截问题 2020-05-21
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash