SpringMVC中的拦截器详解及代码示例
SpringMVC中的拦截器详解及代码示例 SpringMVC中的拦截器详解及代码示例主要介绍了SpringMVC中的拦截器详解及代码示例,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下。 一、SpringMVC中的拦截器定义 在SpringMVC中,定义拦截器要实现HandlerInterceptor接口,并实现该接口中提供的三个方法: 1. preHandle方法:进入Handler方法之前执行。可以用于身份认证、身份授权。比如如果认证没有通过表示用户没有登陆,需要此方法拦截不再往下执行(return false),否则就放行(return true)。 2. postHandle方法:进入Handler方法之后,返回ModelAndView之前执行。可以看到该方法中有个modelAndView的形参。应用场景:从modelAndView出发:将公用的模型数据(比如菜单导航之类的)在这里传到视图,也可以在这里同一指定视图。 3. afterCompletion方法:执行Handler完成之后执行。应用场景:统一异常处理,统一日志处理等。 二、SpringMVC中的拦截器配置 在SpringMVC中,拦截器是针对具体的HandlerMapping进行配置的,也就是说如果在某个HandlerMapping中配置拦截,经过该HandlerMapping映射成功的handler最终使用该拦截器。比如,假设我们在配置文件中配置了的映射器是org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,那么我们可以这样来配置拦截器: ``` <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"> <property name="interceptors"> <list> <ref bean="handlerInterceptor1"/> <ref bean="handlerInterceptor2"/> </list> </property> </bean> <bean id="handlerInterceptor1" class="ssm.intercapter.HandlerInterceptor1"/> ``` 三、SpringMVC中的拦截器执行顺序 在SpringMVC中,拦截器的执行顺序是按照配置的顺序执行的。即,如果我们在配置文件中配置了多个拦截器,那么它们将按照配置的顺序执行。 四、SpringMVC中的拦截器应用场景 拦截器在SpringMVC中的应用场景非常广泛,例如: * 身份认证:可以在preHandle方法中进行身份认证,如果认证没有通过,可以return false,否则return true。 * 权限控制:可以在preHandle方法中进行权限控制,如果没有权限,可以return false,否则return true。 * 统一异常处理:可以在afterCompletion方法中进行统一异常处理。 * 统一日志处理:可以在afterCompletion方法中进行统一日志处理。 五、结论 本文主要总结了SpringMVC中的拦截器定义、配置和执行顺序等知识点,并分享了相关代码示例。需要的朋友可以参考下,希望能够对大家有所帮助。
- 粉丝: 5
- 资源: 957
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助