SpringMVC中拦截器的使用

使用步骤

1. 自定义拦截器类 implements HandlerInterceptor
2. springmvc.xml配置拦截器

controller

package com.codegzy.interceptors;

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 httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        Object user = httpServletRequest.getSession().getAttribute("user");
        if (user == null) {
            httpServletResponse.sendRedirect(httpServletRequest.getContextPath() + "/login.jsp");
            return false;
        }
        //true 放行, false中断请求
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {

    }
}


springmvc.xml

<!--    配置拦截器-->
    <bean class="com.codegzy.interceptors.MyInterceptor" id="myInterceptor"/>

    <mvc:interceptors>
        <mvc:interceptor>
<!--            拦截路径-->
            <mvc:mapping path="/*"/>
<!--            注入拦截器-->
            <ref bean="myInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>

拦截器执行顺序

1. preHandle
2. controller
3. postHandler
4. afterCompletion
posted @ 2021-09-03 19:04  code-G  阅读(127)  评论(0编辑  收藏  举报