拦截器注册配置

例:创建一个loginHandlerinterceptor.class拦截器

ackage com.itxinghua.baidu.config;

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

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//拦截器 想要配置拦截器必须实现HandlerInterceptor接口
//crtl+O调出要实现的接口方法
//登陆检查
public class loginHandlerinterceptor implements HandlerInterceptor {
    //preHandle   目标方法执行之前
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        Object user = request.getSession().getAttribute("loginUser");
        if (user == null){
            //未登录返回登录页面
            request.setAttribute("msg","未登录请先登录");
            request.getRequestDispatcher("/index.html").forward(request,response);
            return false;
        }else {
            //登录
            return true;
        }
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    }
}

2.注册拦截器需要实现WebMvcConfigurer的拦截器方法addInterceptors

package com.itxinghua.baidu.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

//使用WebMvcConfigurer可以扩展SpringMVC的功能
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {


    @Bean
    public WebMvcConfigurer webMvcConfigurer(){
        WebMvcConfigurer gurer = new WebMvcConfigurer(){
           
       //注册拦截器
            @Override
            public void addInterceptors(InterceptorRegistry registry) {
                // addPathPatterns拦截的请求  “/** ” 拦截所有  excludePathPatterns排除掉的请求
                registry.addInterceptor(new loginHandlerinterceptor()).addPathPatterns("/**").excludePathPatterns("/index.html", "/", "/login/controller","/Css/*","/img/*");

            }
        };
        return gurer;
    }


}

 

posted @ 2020-12-07 14:07  别想这么多  阅读(291)  评论(0)    收藏  举报