全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

spring boot实现过滤器和拦截器demo

整理文档,搜刮出一个spring boot实现过滤器和拦截器demo ,稍微整理精简一下做下分享。

拦截器定义:

@WebServlet
public class ActionInterceptor implements HandlerInterceptor {

  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
      throws Exception {
    // System.out.println(">>>MyInterceptor1>>>>>>>在请求处理之前进行调用(Controller方法调用之前)");

    // 获取系统时间
    Calendar ca = Calendar.getInstance();
    int hour = ca.get(Calendar.HOUR_OF_DAY);
    // 设置限制运行时间 0-4点
    if (hour < 4) {
      return true;
    }
    return false;
  }

  @Override
  public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
      ModelAndView modelAndView) throws Exception {
    // System.out.println(">>>MyInterceptor1>>>>>>>请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后)");

  }

  @Override
  public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
      throws Exception {
    // System.out.println(">>>MyInterceptor1>>>>>>>在整个请求结束之后被调用,也就是在DispatcherServlet
    // 渲染了对应的视图之后执行(主要是用于进行资源清理工作)");
  }
}

拦截器使用:  关于注解 我使用的是@Component  其实也可能声明成配置

@Component
public class ApplicationConfig {extends WebMvcConfigurerAdapter 

  @Override
  public void addInterceptors(InterceptorRegistry registry) {
    // 多个拦截器组成一个拦截器链
    // addPathPatterns 用于添加拦截规则
    // excludePathPatterns 用户排除拦截
    registry.addInterceptor(new ActionInterceptor()).addPathPatterns("/service/extract/json/**");
    super.addInterceptors(registry);
  }
}

过滤器:

定义:

public class ActionFilter implements Filter {

  @Override
  public void init(FilterConfig filterConfig) throws ServletException {

  }

  @Override
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
      throws IOException, ServletException {
    // 获取系统时间
    Calendar ca = Calendar.getInstance();
    int hour = ca.get(Calendar.HOUR_OF_DAY);
    // 设置限制运行时间 0-4点
    if (hour < 4) {
      HttpServletResponse httpResponse = (HttpServletResponse) response;
      httpResponse.setCharacterEncoding("UTF-8");
      httpResponse.setContentType("application/json; charset=utf-8");
      
      // 消息
      Map<String, Object> messageMap = new HashMap<>();
      messageMap.put("status", "1");
      messageMap.put("message", "此接口可以请求时间为:0-4点");
      ObjectMapper objectMapper=new ObjectMapper();
      String writeValueAsString = objectMapper.writeValueAsString(messageMap);
      response.getWriter().write(writeValueAsString);
      
    } else {
      chain.doFilter(request, response);
    }

  }

  @Override
  public void destroy() {

  }

}

使用:

@Component
public class ApplicationConfig { 


  @Bean
  public FilterRegistrationBean filterRegistrationBean() {
    FilterRegistrationBean registrationBean = new FilterRegistrationBean();
    ActionFilter actionFilter = new ActionFilter();
    registrationBean.setFilter(actionFilter);
    List<String> urlPatterns = new ArrayList<String>();
    urlPatterns.add("/service/extract/json/*");
    registrationBean.setUrlPatterns(urlPatterns);
    return registrationBean;
  }
  

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# spring  # boot  # 过滤器  # springboot  # 拦截器  # springboot配置过滤器  # SpringBoot 过滤器、拦截器、监听器对比及使用场景分析  # 浅谈SpringMVC的拦截器(Interceptor)和Servlet 的过滤器(Filter)的  # Spring Boot拦截器和过滤器实例解析  # SpringBoot实现拦截器、过滤器、监听器过程解析  # spring boot设置过滤器、监听器及拦截器的方法  # 详谈springboot过滤器和拦截器的实现及区别  # Spring Boot使用过滤器和拦截器分别实现REST接口简易安全认证示例代码详解  # Spring Boot项目实战之拦截器与过滤器  # SpringBoot定义过滤器、监听器、拦截器的方法  # Spring拦截器和过滤器的区别在哪?  # 的是  # 是在  # 也就  # 多个  # 时间为  # 大家多多  # 结束之后  # 主要是  # 文档  # 但是在  # 在整个  # getInstance  # ca  # lt  # HOUR_OF_DAY  # hour  # int  # gt  # println 


相关文章: 宝塔建站无法访问?如何排查配置与端口问题?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  股票网站制作软件,网上股票怎么开户?  黑客如何通过漏洞一步步攻陷网站服务器?  如何选择域名并搭建高效网站?  如何在西部数码注册域名并快速搭建网站?  全景视频制作网站有哪些,全景图怎么做成网页?  焦点电影公司作品,电影焦点结局是什么?  如何用美橙互联一键搭建多站合一网站?  建站之星会员如何解锁更多建站功能?  如何快速搭建FTP站点实现文件共享?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  如何通过主机屋免费建站教程十分钟搭建网站?  网站制作说明怎么写,简述网页设计的流程并说明原因?  ,有什么在线背英语单词效率比较高的网站?  如何用IIS7快速搭建并优化网站站点?  淘宝制作网站有哪些,淘宝网官网主页?  建站主机核心功能解析:服务器选择与网站搭建流程指南  制作网站怎么制作,*游戏网站怎么搭建?  如何通过商城免费建站系统源码自定义网站主题?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  大同网页,大同瑞慈医院官网?  建站之星免费模板:自助建站系统与智能响应式一键生成  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  深圳网站制作平台,深圳市做网站好的公司有哪些?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  如何在阿里云香港服务器快速搭建网站?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  如何在云主机上快速搭建多站点网站?  如何在云主机上快速搭建网站?  如何快速搭建二级域名独立网站?  制作销售网站教学视频,销售网站有哪些?  红河网站制作公司,红河事业单位身份证如何上传?  ppt制作免费网站有哪些,ppt模板免费下载网站?  如何零基础开发自助建站系统?完整教程解析  如何选择可靠的免备案建站服务器?  小型网站制作HTML,*游戏网站怎么搭建?  宝塔面板创建网站无法访问?如何快速排查修复?  如何用腾讯建站主机快速创建免费网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。