1、添加類實(shí)現(xiàn)HandlerInterceptor
public class RouteInterceptor implements HandlerInterceptor {
? ? @Override
? ? public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
? ? ? ? response.setCharacterEncoding("UTF-8");
? ? ? ? response.setContentType("application/json; charset=utf-8");
? ? ? ? try {
? ? ? ? ? ? PrintWriter printWriter = response.getWriter();
? ? ? ? ? ? printWriter.append(new ObjectMapper().writeValueAsString(new Protocol(-1, "您無(wú)此操作權(quán)限")));
? ? ? ? ? ? return false;
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? response.sendError(500);
? ? ? ? ? ? return false;
? ? ? ? }
? ? }
? ? @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 {
? ? }
}
2、攔截器返回Json數(shù)據(jù)-- response賦值
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json; charset=utf-8");
PrintWriter printWriter = response.getWriter();
printWriter.append(new ObjectMapper().writeValueAsString(new Protocol(-1, "您無(wú)此操作權(quán)限")));
3、配置攔截器 --? @Configuration
@Configuration
public class WebAppConfig extends WebMvcConfigurerAdapter {
? ? // 多個(gè)攔截器組成一個(gè)攔截器鏈
? ? // addPathPatterns 用于添加攔截規(guī)則
? ? // excludePathPatterns 用戶排除攔截
? ? @Override
? ? public void addInterceptors(InterceptorRegistry registry) {
? ? ? ? registry.addInterceptor(new RouteInterceptor())? ?// 添加攔截器
? ? ? ? ? ? ? ? .addPathPatterns("/**")? ?//? 攔截所有請(qǐng)求
? ? ? ? ? ? ? ? .excludePathPatterns("/user/**", "/system/**", "/base/**");? ?//對(duì)應(yīng)的不攔截的請(qǐng)求
? ? }
}