美文网首页
SpringMVC的拦截器

SpringMVC的拦截器

作者: 月哥说了算 | 来源:发表于2019-07-10 20:59 被阅读0次

原理

springmv的interceptor的执行流程位置.png

从图上可以看出springmvc的拦截器运行在tomcat的拦截器之后,所以实际开发中一般不用springmvc的拦截器。

使用步骤

第一步:编写一个普通类实现 HandlerInterceptor 接口

package com.gzy.web.filter;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyFilter implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("拦截器1.............执行前............");
        //如果你返回的false  不放行  也就不会后面什么事
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("拦截器1............controller的方法执行完.....");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("拦截器1............视图渲染完毕 之后的.............");
    }
}

第二步:配置拦截器

<mvc:interceptors>
    <mvc:interceptor>
        <!--这里两个*代表全部请求路径-->
        <mvc:mapping path="/**"/>
        <bean class="com.gzy.web.filter.MyFilter"/>
    </mvc:interceptor>
</mvc:interceptors>

测试

package com.gzy.web.servlet;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class UserController {
    @ResponseBody
    @RequestMapping("/test")
    public String test(){
        System.out.println("执行方法了");
        return "success";
    }
}

测试结果

Snipaste_2019-07-10_20-55-42.png

相关文章

网友评论

      本文标题:SpringMVC的拦截器

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