zoukankan      html  css  js  c++  java
  • SpringMVC笔记(四)拦截器

    一、拦截器:Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必 须实现HandlerInterceptor接口

     

    二、实现步骤:

    1.自定义实现类实现HandlerInterceptor接口
    2.在springMVC中配置文件中的配置相应的拦截器
    实现的代码:
    1.自定义实现类
    package com.neuedu.springmvc.interceptor;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.HandlerInterceptor;
    import org.springframework.web.servlet.ModelAndView;
    
    /* 
    * 项目名称:springmvc-03 
    * @author:wzc
    * @date 创建时间:2017年8月24日 上午10:37:35
    * @Description:自定义拦截器
    * @parameter  
    *   */
    public class interceptor implements HandlerInterceptor{
    
    	@Override
    	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
    			throws Exception {
    		System.out.println("afterCompletion");	
    	}
    
    	@Override
    	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
    			throws Exception {
    		System.out.println("postHandle");
    	}
    	@Override
    	public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
    		System.out.println("preHandle");
    		return true;
    	}
    
    }
    

    2.在springMVC中配置文件中的配置相应的拦截器

     <!-- 配置拦截器 -->
      <mvc:interceptors>
       <!-- 配置自定义拦截器全类名 -->
         <bean class="com.neuedu.springmvc.interceptor.interceptor"></bean>
      </mvc:interceptors>
    

     三、拦截器工作原理

    四、拦截器中的三种方法:

    –    preHandle():该方法在目标方法之前被调用,
                        若返回值为true,则继续调用后续的拦截器和目标方法
                        若返回值为false,则不会再调用后续的拦截器和目标方法
                        可以考虑做权限,日志或者事务等!
        –    postHandle():调用目标方法之后,但渲染视图之前被调用
                     可以对请求域中的属性或者视图做出修改!
        –    afterCompletion():渲染视图之后被调用,
                          可以在该方法中进行一些资源清理的操作。

    五/多拦截器的实现

    可以自定义多个拦截器实现类,然后只需要在SpringMVC-xml文件中进行配置就行

       <!-- 配置拦截器 -->
      <mvc:interceptors>
         <!-- 配置自定义拦截器全类名 -->
         <bean class="com.neuedu.springmvc.interceptor.interceptor"></bean>
     	<!-- 增加拦截器配置 -->
     	<mvc:interceptor >
     	       <!-- 可以配置拦截的请求路径 -->
     	       <mvc:mapping path="/testJson"/>
     	       <!-- 配置自定义拦截器全类名 -->
     	      <bean class="com.neuedu.springmvc.interceptor.SecondInterceptor">
     	      </bean>
     	</mvc:interceptor>
      </mvc:interceptors>
    

     六、多拦截器的执行顺序图

  • 相关阅读:
    leetcode 对称二叉树
    leetcode 验证二叉搜索树
    蓝桥杯 完美的代价 贪心
    蓝桥杯 字符串对比 模拟
    蓝桥杯 芯片测试 极限找规律
    蓝桥杯 2n皇后问题 深搜
    74. 搜索二维矩阵
    二分 34
    二分 35
    二分 69
  • 原文地址:https://www.cnblogs.com/Actexpler-S/p/7424950.html
Copyright © 2011-2022 走看看