美文网首页
spring-mvc-8拦截器

spring-mvc-8拦截器

作者: liangxifeng833 | 来源:发表于2018-01-22 20:25 被阅读12次

一. 第一个拦截器例子

  1. FirstInterceptor 需要实现 org.springframework.web.servlet.HandlerInterceptor 接口
package com.atguigu.springmvc.interceptors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
/**    
 * springMVC下第一个拦截器学习   
 * @author lxf
 *
 */
public class FirstInterceptor implements HandlerInterceptor{

    /**
     * 在渲染视图之后被调用, 释放资源
     */
    @Override
    public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
            throws Exception {
        System.out.println("FirstInterceptor afterCompletion");  
    }
    /**
     * 调用目标方法之后但渲染视图之前被调用
     * 可以对请求域中的属性修改
     */
    @Override
    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
            throws Exception {
        System.out.println("FirstInterceptor postHandle");
    }
    /**
     * 在目标方法调用之前被调用
     * 若返回值为true, 则继续调用后续的拦截器和目标方法
     * 若返回值为false, 则不会调用后续的拦截器和目标方法
     */
    @Override
    public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
        System.out.println("FirstInterceptor preHandle");
        return true;
    }
}
  1. 配置 springmvc.xml 配置文件
     <mvc:interceptors>
        <!-- 配置自定义的拦截器 -->
        <bean class="com.atguigu.springmvc.interceptors.FirstInterceptor"></bean>
     </mvc:interceptors>
  1. 在访问任何一个控制器的目标方法的时候, 该自定义的拦截器都会先后执行, 执行顺序图解:


    Paste_Image.png
  2. 还可以实现指定目标方法的拦截, springmvc.xml配置如下:

     <mvc:interceptors>    
        <!-- 配置拦截器 起/不起 作用的路径,也就是针对指定目标方法实现拦截 -->
        <mvc:interceptor>
            <mvc:mapping path="/emp" />
            <bean class="com.atguigu.springmvc.interceptors.SecondInterceptor"></bean>
        </mvc:interceptor>        
     </mvc:interceptors>

以上配置说明 SecondInterceptor 拦截器只拦截 /emp 目标方法

5.多个拦截器的执行顺序


Paste_Image.png Paste_Image.png

点击查看代码练习

相关文章

网友评论

      本文标题:spring-mvc-8拦截器

      本文链接:https://www.haomeiwen.com/subject/pdogrxtx.html