相比springmvc,springboot中拦截器不需要在xml中配置,只需定义拦截器类 implements HandlerInterceptor
和拦截器拦截路径的配置类extends WebMvcConfigurerAdapter
1.SessionInterceptor
package com.example.demo;import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** Created by 20160216 on 2018/2/8.*/
public class SessionInterceptor implements HandlerInterceptor
{@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {System.out.println("uri="+request.getRequestURI());//登录不做拦截if(request.getRequestURI().equals("/userbg/login") || request.getRequestURI().equals("/user/login_view")){return true;}//验证session是否存在Object obj = request.getSession().getAttribute("_session_user");if(obj == null){response.sendRedirect("/user/login_view");return false;}return true;}@Overridepublic void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {}@Overridepublic void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {}
}
2.SessionConfiguration
package com.example.demo;import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;/*** Created by 20160216 on 2018/2/8.*/ @Configuration public class SessionConfiguration extends WebMvcConfigurerAdapter {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new SessionInterceptor()).addPathPatterns("/**");} }