HandlerInterceptor拦截器的实际应用
1、AuthorityInterceptor.java
@Component
public class AuthorityInterceptor implements HandlerInterceptor {
@Resource
DataDouyinMapper dataDouyinMapper;
//主要是这个方法中实现拦截逻辑
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("已经进入拦截器" + " url: " + request.getServletPath());
String path = request.getServletPath();
//特定路径拦截
if (StringUtils.isNotBlank(path) && path.equals("/kcw/find")) {
//逻辑判断
//1. 时间 2. 次数 一个组共用时间和次数
SysUser user = UserUtils.getUser();//拿到当前用户的账号信息 userMain userSub
if (StringUtils.isNotBlank(user.getManagePower()) && user.getManagePower().equals("userMain")) {
}
//响应数据
ResUtil resUtil = new ResUtil();
resUtil.setCode(200);
resUtil.setMsg("过期");
returnJson(response, JSON.toJSONString(resUtil));
return false;
}
if (StringUtils.isNotBlank(path) && path.equals("/video/find")) {
//逻辑判断
//响应数据
ResUtil resUtil = new ResUtil();
resUtil.setCode(200);
resUtil.setMsg("过期");
returnJson(response, JSON.toJSONString(resUtil));
return false;
}
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
//拦截后返回对应的Json结果
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) {
//logger.error("response error", e);
} finally {
if (writer != null)
writer.close();
}
}
}
2、WebConfig.java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Autowired
private AuthorityInterceptor authorityInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(authorityInterceptor);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?