zoukankan      html  css  js  c++  java
  • SprongBoot——拦截器

    拦截器的作用
    拦截用户的请求并进行相应的处理,比如:判断用户是否登陆,是否在可购买时间内,记录日志信息等。

    1.创建Interceptor类

    public class TestInterceptor implements HandlerInterceptor{
     
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
             try{
                //统一拦截(查询当前session是否存在user)(这里user会在每次登陆成功后,写入session)
                User user=(User)request.getSession().getAttribute("USER");
                if(user!=null){
                    return true;
                }
                response.sendRedirect(request.getContextPath()+"你的登陆页地址");
            } catch (IOException e) {
                e.printStackTrace();
            }
            return true;  //如果设置为false时,被请求时,拦截器执行到此处将不会继续操作
                          //如果设置为true时,请求将会继续执行后面的操作
        }
         /**
         * 请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后)
         */
        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
             System.out.println("执行了TestInterceptor的postHandle方法");
        }
         /**
         * 在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行(主要是用于进行资源清理工作)
         */
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
            System.out.println("执行了TestInterceptor的afterCompletion方法");
        }
    }
    

    2.创建拦截器配置类

    @Configuration
    public class WebAppConfigurer implements WebMvcConfigurer {
     
     
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            //註冊TestInterceptor拦截器
            InterceptorRegistration registration = registry.addInterceptor(new TestInterceptor());
            registration.addPathPatterns("/**");                    //所有路径都被拦截
            registration.excludePathPatterns("/","/error","/static/**");       //添加不拦截路径
     
        }
    }
    
  • 相关阅读:
    codeforces 616B Dinner with Emma
    codeforces 616A Comparing Two Long Integers
    codeforces 615C Running Track
    codeforces 612C Replace To Make Regular Bracket Sequence
    codeforces 612B HDD is Outdated Technology
    重写父类中的成员属性
    子类继承父类
    访问修饰符
    方法的参数
    实例化类
  • 原文地址:https://www.cnblogs.com/luckyhui28/p/12355307.html
Copyright © 2011-2022 走看看