当前位置:   article > 正文

SpringBoot学习(二)——web组件_org.springframework.web.bind.annotation

org.springframework.web.bind.annotation

拦截器

拦截器是SpringMVC中一种对象,能够拦截对Controller的请求

拦截器框架中有系统的拦截器,还可以自定义拦截器,实现对请求的预先处理

复习:在SpringMVC中实现一个自定义拦截器:

1.创建类实现SpringMVC框架的HandlerInterceptor接口,重写接口的方法实现操作

2.需要在SpringMVC的配置文件中,声明拦截器

学习:在SpringBoot中使用拦截器

创建类实现SpringMVC框架的HandlerInterceptor接口,重写接口的方法实现操作

  1. package com.ys.web;
  2. import org.springframework.web.servlet.HandlerInterceptor;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. public class Login implements HandlerInterceptor {
  6. /**
  7. * request、response可以给值 request.setAttribute();
  8. * handler 被拦截器拦截的对象
  9. * return : true请求可以通过能被controller处理
  10. * false 请求不能通过,被拦截
  11. * */
  12. @Override
  13. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
  14. System.out.println("经过了拦截器");
  15. return false;
  16. }
  17. }

创建一个类声明拦截器,使用@Configuration

  1. package com.ys.config;
  2. import com.ys.web.Login;
  3. import org.springframework.context.annotation.Configuration;
  4. import org.springframework.web.servlet.HandlerInterceptor;
  5. import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
  6. import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
  7. @Configuration//将文件作为Spring配置文件
  8. //WebMvcConfigurer接口有许多和SpringMVC有关的操作
  9. public class LoginConfig implements WebMvcConfigurer {
  10. // 添加拦截器对象,注入容器
  11. @Override
  12. public void addInterceptors(InterceptorRegistry registry) {
  13. // 创建拦截器对象 使用接口创建实现类
  14. HandlerInterceptor interceptor=new Login();
  15. // addInterceptor注入拦截器对象 addPathPatterns()拦截对象 excludePathPatterns()不拦截对象
  16. // 使用数组存放地址
  17. String path []={"/user/**"};//被拦截的地址
  18. String exclude []={"/user/login"};//不被拦截的地址(当拦截和不拦截都包括地址时,以不拦截为最终结果)
  19. registry.addInterceptor(interceptor).
  20. addPathPatterns(path).
  21. excludePathPatterns(exclude);
  22. }
  23. }

测试拦截器是否生效,创建一个controller

package com.ys.controller
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/576362
推荐阅读
相关标签
  

闽ICP备14008679号