SpringMVC拦截器


SpringMVC拦截器是AOP思想的具体应用


想要自定义拦截器,必须实现HandlerInterceptor接口



先测试下tomcat环境和controller能不能用

【如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解】
@RestController注解,相当于@Controller+@ResponseBody两个注解的结合,
返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面


自定义一个SpringMVC拦截器



MyInterceptor:

package com.kakafa.config;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyInterceptor implements HandlerInterceptor {


    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //return true表示 放行 执行下一个拦截器
        System.out.println("===========处理前============");
        return true;
    }

    //后面两个方法作用主要是用来加拦截日志
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("===========处理后============");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("===========清理============");
    }
}

springmvc配置文件:

    <!--拦截器配置-->
    <mvc:interceptors>
        <mvc:interceptor>
            <!--path="/**"表示拦截所有请求;如果是path="/admin/**"则表示拦截admin下的所有请求-->
            <mvc:mapping path="/**"/>
            <bean class="com.kakafa.config.MyInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>


运行结果:











addViewController的使用:https://blog.csdn.net/JerryWu666/article/details/116498075




posted @ 2022-01-21 10:39  卡卡发  阅读(43)  评论(0)    收藏  举报