• springboot拦截器


    1.创建拦截类实现HandlerInterceptor

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.HandlerInterceptor;
    import org.springframework.web.servlet.ModelAndView;
    
    import com.pengsheng.bugcollect.po.PersonInfo;
    
    public class loginFilter implements HandlerInterceptor{
    	
    	@Override
        public void afterCompletion(HttpServletRequest request,
                                    HttpServletResponse response, Object obj, Exception err)
                throws Exception {
    		
        }
    
        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response,
                               Object obj, ModelAndView mav) throws Exception {
        }
    
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
                                 Object obj) throws Exception {
            //获取session里的登录状态值
        	PersonInfo str = (PersonInfo) request.getSession().getAttribute("personInfo");
               //如果登录状态不为空则返回true,返回true则会执行相应controller的方法
               if (str != null) {
                   return true;
                }
               //如果登录状态为空则重定向到登录页面,并返回false,不执行原来controller的方法
              response.sendRedirect("/initLogin.action");
              return false;
        }
    }
    

      2.编写InterceptorConfigurerAdapter类继承WebMvcConfigurerAdapter

    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    
    @Configuration
    public class InterceptorConfigurerAdapter extends WebMvcConfigurerAdapter {
        /**
         * 该方法用于注册拦截器
         * 可注册多个拦截器,多个拦截器组成一个拦截器链
         */
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            // addPathPatterns 添加路径
            // excludePathPatterns 排除路径
            registry.addInterceptor(new loginFilter()).addPathPatterns("/*.*").excludePathPatterns("/initLogin.action", "/jsp/login.jsp","/login.action");
            super.addInterceptors(registry);
        }
    }
    

      

  • 相关阅读:
    sqli-libs(3)
    python学习之路(18)
    BZOJ3534:[SDOI2014]重建——题解
    洛谷省选斗兽场全通关祭~以及之后的打算!
    BZOJ4596:[SHOI2016]黑暗前的幻想乡——题解
    BZOJ2732:[HNOI2012]射箭——题解
    BZOJ1486:[HNOI2009]最小圈——题解
    BZOJ4552:[HEOI2016/TJOI2016]排序——题解
    BZOJ2830 & 洛谷3830:[SHOI2012]随机树——题解
    BZOJ4889 & 洛谷3759:[TJOI2017]不勤劳的图书管理员——题解
  • 原文地址:https://www.cnblogs.com/liuna369-4369/p/12177158.html
Copyright © 2020-2023  润新知