博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring高级 之 拦截器
阅读量:7003 次
发布时间:2019-06-27

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

hot3.png

1 拦截器

    Spring Web MVC 的处理拦截器类似于Servlet开发中的过滤器filter,用于对处理器进行预处理和后处理。

 

1.1 拦截器定义

实现HandlerInterceptor接口,如下:

 

public class MyHanlerInterceptor implements HandlerInterceptor{

 

 

   /**

    * controller执行前调用此方法

    * 返回true表示继续执行,返回false中止执行

    *这里可以加入登录校验,权限拦截等    

   */

    @Override

    public boolean preHandle(HttpServletRequest request,HttpSerletReponse response ,Object handler) throws Exception{}

 

   /**

    * controller执行后但未返回试图前调用此方法

    * 这里可在返回用户前对模型数据进行加工处理,比如这里加入公用信息以便页面显示

   */

   @Override

   public void postHandle(HttpServletRequest request,HttpServletResponse response,Object handler,ModelAndView)throws Exception{}

 

 

   /**

    * controller执行后且视图返回后调用此方法

    * 这里可得到执行controller时的异常信息

    *这里可以记录操作日志,资源清理等。

   */

   @Override

   public void afterCompletion(HttpServletRequest request,HttpServletResponse response,Object handler,Exception e)throws Exception{}

 

}

 

1.2拦截器配置

1.2.1 针对某种mapping配置拦截器

<bean

       class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">

       <property name="interceptors">

              <list>

                     <ref bean="myHandlerInterceptor"/>

              </list>

       </property>

</bean>

       <bean id=" myHandlerInterceptor "

 class="springmvc.intercapter. myHandlerInterceptor "/>

      

 

1.2.2针对所有mapping配置全局拦截器

!--拦截器 -->

<mvc:interceptors>

       <!--多个拦截器,顺序执行 -->

       <mvc:interceptor>

              <mvc:mapping path="/**"/>

              <bean class="cn.itcast.springmvc.filter.HandlerInterceptor1"></bean>

       </mvc:interceptor>

       <mvc:interceptor>

              <mvc:mapping path="/**"/>

              <bean class="cn.itcast.springmvc.filter.HandlerInterceptor2"></bean>

       </mvc:interceptor>

</mvc:interceptors>

 

 

转载于:https://my.oschina.net/u/1442577/blog/530949

你可能感兴趣的文章
Cesium原理篇:4Web Workers剖析
查看>>
python 设计模式
查看>>
javaweb学习总结二十一(servlet开发入门、servlet生命周期以及调用过程)
查看>>
html传参数
查看>>
nodemanager启动失败
查看>>
spring整合mybatis是如何配置事务的?
查看>>
打印报表
查看>>
POJ 2756 Autumn is a Genius 大数加减法
查看>>
redis+mysql
查看>>
Redis(二):Redis的九大应用场景
查看>>
sonarqube 指定jdk
查看>>
js中window.onload 与 jquery中$(document.ready()) 測试
查看>>
jsoncpp的生成和使用
查看>>
HBase shell 命令。
查看>>
android SIM Switch功能和配置
查看>>
字符串处理函数
查看>>
Ordered Broadcast有序广播
查看>>
Tcpdump的用法
查看>>
python学习:Dmidecode系统信息(一)
查看>>
iview给radio按钮组件加点击事件
查看>>