首先自定义拦截器,代码如下
package com.example.learn.filter;import com.example.learn.pojo.User;import org.springframework.lang.Nullable;import org.springframework.stereotype.Component;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/**
* @author : wangbo
* @version : 1.0
* @date :Create in 2021/5/15
* @description :
*/@ComponentpublicclassSessionInterceptorimplementsHandlerInterceptor{@OverridepublicbooleanpreHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception{
User user=(User)request.getSession().getAttribute("user");if(user!= null){returntrue;}returnfalse;}@OverridepublicvoidpostHandle(HttpServletRequest request, HttpServletResponse response, Object handler,@Nullable ModelAndView modelAndView)throws Exception{}@OverridepublicvoidafterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler,@Nullable Exception ex)throws Exception{}}
然后编写拦截器配置类
package com.example.learn.config;import com.example.learn.filter.SessionInterceptor;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;/**
* @author : wangbo
* @version : 1.0
* @date :Create in 2021/5/15
* @description :
*/@ConfigurationpublicclassInterceptorConfigextendsWebMvcConfigurerAdapter{@OverridepublicvoidaddInterceptors(InterceptorRegistry registry){
registry.addInterceptor(newSessionInterceptor()).addPathPatterns("/**").excludePathPatterns("/user/login","/user/register");super.addInterceptors(registry);}}