springboot 配置拦截器
WebConfig
@Autowired
private ParentInterceptor parentInterceptor;
@Override //添加拦截器
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(teacherInterceptor).addPathPatterns("/" + GlobalNames.TEACHER_URL +"/**")//拦截所有请求
.excludePathPatterns("/" + GlobalNames.TEACHER_URL +"/inlogin","/" + GlobalNames.TEACHER_URL +"/login",
"/");}
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// registry.addResourceHandler("/upload/**").addResourceLocations("file:"+uploadPath);
}
ParentInterceptor
@Component
public class ParentInterceptor implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
try {
Parent dto = (Parent) request.getSession().getAttribute(Parent.PARENT);
Teacher teacher=(Teacher)request.getSession().getAttribute(Teacher.TEACHER_ADMIN);
if (teacher!=null){
return true;
}else if(dto==null){
if ("POST".equals(request.getMethod())) {
returnJson(response, "{\"state\":\"9002\",\"message\":\"请先登录后操作!\"}");
}else{
response.sendRedirect(request.getContextPath()+"/parent/inlogin");
}
return false;
}
} catch (NullPointerException e) {
}
return true;
}
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
throws Exception {
}
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception exception)
throws Exception {
}
private void returnJson(HttpServletResponse response, String json) throws Exception{
PrintWriter writer = null;
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=utf-8");
try {
writer = response.getWriter();
writer.print(json);
} catch (IOException e) {
} finally {
if (writer != null)
writer.close();
}
}
}