通过继承 WebMvcConfigurerAdapter来实现拦截
WebMvcConfig.java:
package com;
import org.springframework.beans.factory.annotation.Value;
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.WebMvcConfigurerAdapter;
/**
* 图片绝对地址与虚拟地址映射
*/
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry reg) {
String [] eclude=new String[]{"/","/login","/index.html","/css/**","/js/**","/images/**"};
//excludePathPatterns 是不拦截的路径
reg.addInterceptor(new InterceptorConfig()).addPathPatterns("/**").excludePathPatterns(eclude);
}
}
InterceptorConfig.java:
public class InterceptorConfig implements HandlerInterceptor{
private final static Logger logger = LoggerFactory.getLogger(InterceptorConfig.class);
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse response, Object o) throws Exception {
//在这里面进行逻辑判断,并且返回想要的地址
HttpSession session = httpServletRequest.getSession();
int interval = session.getMaxInactiveInterval();
boolean meg=false;
CuUser user = (CuUser)session.getAttribute("user");
if(user!=null) {
meg= true;
return meg;
}else {
logger.info("session已超时,重新登录!");
response.sendRedirect("/");
}
return meg;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
}
}