| 1、编写一个拦截器实现HandlerInterceptor接口 |
| |
| 2、拦截器注册到容器中(实现WebMvcConfigurer的addInterceptors) |
| |
| 3、指定拦截规则,如果是拦截所有,静态资源也会被拦截 |
| public class LoginInterceptor implements HandlerInterceptor { |
| |
| |
| @Override |
| public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { |
| |
| HttpSession session = request.getSession(); |
| Object loginUser = session.getAttribute("loginUser"); |
| if(loginUser != null){ |
| |
| return true; |
| } |
| |
| request.setAttribute("msg","请先登录"); |
| request.getRequestDispatcher("/").forward(request,response); |
| return false; |
| } |
| |
| |
| @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 { |
| |
| } |
| |
| } |
- 注册到容器,配置类实现WebMvcConfigurer
| @Configuration |
| public class AdminWebConfig implements WebMvcConfigurer { |
| |
| @Override |
| public void addInterceptors(InterceptorRegistry registry) { |
| registry.addInterceptor(new LoginInterceptor()) |
| .addPathPatterns("/**") |
| .excludePathPatterns("/","/login","/css/**","/fonts/**","/images/**","/js/**"); |
| } |
| |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?