使用拦截器完成session超时退回指定页

//拦截器类
@Component
public class MyInterceptor implements HandlerInterceptor {
    
    
    @Autowired
    //根据所用注入具体session
    private HttpSession session;
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    
    
        // 从session中获取用户信息
        User user = (User) session.getAttribute("user");
        Admin admin = (Admin) session.getAttribute("admin");
        if(user == null && admin == null){
    
    
        	//session空后返回的页面路径
            response.sendRedirect("/");
            return false;
        }
        return true;
    }
}
//拦截规则配置类
@Configuration
public class MVCInterceptRule  extends WebMvcConfigurerAdapter {
    
    
	//注入拦截器类
    @Autowired
    private MyInterceptor myInterceptor;
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    
    
        registry.addInterceptor(configInterceptor)
                //需要拦截的路径使用addPathPatterns
                .ad斜体样式dPathPatterns("/**");
                
                //排除加载文件请求使用excludePathPatterns
                .excludePathPatterns("/")
                .excludePathPatterns("/static/**") // 排除静态文件
    }
}

Supongo que te gusta

Origin blog.csdn.net/weixin_49260016/article/details/116197006
Recomendado
Clasificación