• springMvc中的拦截器【巩固】


    先实现下想要的拦截器功能

    1. package com.hmdp.utils;
    2. import com.hmdp.entity.User;
    3. import org.springframework.web.servlet.HandlerInterceptor;
    4. import javax.servlet.http.HttpServletRequest;
    5. import javax.servlet.http.HttpServletResponse;
    6. import javax.servlet.http.HttpSession;
    7. public class LoginInterceptor implements HandlerInterceptor {
    8. /**
    9. * 前置拦截器
    10. * @param request
    11. * @param response
    12. * @param handler
    13. * @return
    14. * @throws Exception
    15. */
    16. @Override
    17. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    18. //获取session
    19. HttpSession session = request.getSession();
    20. Object user = session.getAttribute("user");
    21. if(user==null)
    22. {
    23. //不存在,拦截,返回401状态码
    24. response.setStatus(401);
    25. return false;
    26. }
    27. //保存信息到ThreadLocal
    28. UserHolder.saveUser((User) user);
    29. return true;
    30. }
    31. @Override
    32. public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    33. //移除用户
    34. UserHolder.removeUser();
    35. }
    36. }

    配置拦截器:

    1. /**
    2. * 拦截器
    3. */
    4. @Configuration
    5. public class MvcConfig implements WebMvcConfigurer {
    6. @Override
    7. public void addInterceptors(InterceptorRegistry registry) {
    8. registry.addInterceptor(new LoginInterceptor())
    9. .excludePathPatterns(
    10. "/blog/hot",
    11. "/user/code",
    12. "user/login"
    13. );
    14. }
    15. }

     @Configuration:当使用`@Configuration`注解标记一个类时,它表示该类是一个配置类,用于定义和配置Spring应用程序的组件和相关配置。

    WebMvcConfigurer :是Spring MVC中的一个接口,它允许开发者自定义Spring MVC的某些特性。如果你想自定义Spring MVC而不是完全采用默认配置,那么你可以实现WebMvcConfigurer接口。例如,如果你想更改默认的视图解析器、消息转换器、拦截器等,你可以通过实现WebMvcConfigurer接口来完成。

    .excludePathPatterns:这些接口不走拦截

    .addInterceptor :是 WebMvcConfigurer 接口中的一个方法,它允许你添加自定义的拦截器(Interceptor)到 Spring MVC 的处理流程中。拦截器可以用于在请求处理之前或之后执行特定的逻辑,例如身份验证、日志记录、性能监控等。

  • 相关阅读:
    互换性与技术测量试题及答案(4套)
    本地环境搭建
    智能爬虫ScrapeGraphAI尝鲜
    HTTP 速查手册
    手把手教你编写LoadRunner脚本
    c高级 day1
    java毕业生设计晨光文具店进销存系统设计与开发计算机源码+系统+mysql+调试部署+lw
    栈实现计算器
    [C语言基础]文件读取模式简析
    supervisor的使用
  • 原文地址:https://blog.csdn.net/qq_52463974/article/details/134471501