zoukankan      html  css  js  c++  java
  • 后端——框架——视图层框架——spring_mvc——《官网》阅读笔记——第一章节26(过滤器,ShallowEtagHeaderFilter)

    1、概念

      ShallowEtagHeaderFilter会根据响应的内容生成”shallow etag”,再次请求时,会将该值作为请求头中If-None-Match属性值,并与”shallow etag”的值进行比较,若二者相等返回304, Not Modified。相当于给请求添加缓存的功能。

    2、使用

      使用shallowEtagHeaderFilter的步骤如下

    1. 第一步,创建ShallowEtagHeaderFilter对象,
    2. 第二步,注册ShallowEtagHeaderFilter,拦截DispactherServlet,或者是URL地址都可以。
    3. 第三步,验证,可以在响应中看到eTag字段。

    3、示例

      1、第一步:配置ShallowEtagHeaderFilter拦截器拦截DispatcherSerlvet

    // 配置请求的分发类型
    EnumSet<DispatcherType> dispatchers = EnumSet.of(DispatcherType.REQUEST, DispatcherType.ASYNC, DispatcherType.FORWARD, DispatcherType.INCLUDE);
    // 创建ShallowEtagHeaderFilter
    ShallowEtagHeaderFilter eTagHeader = new ShallowEtagHeaderFilter();
    // 生成eTagHeader
    eTagHeader.setWriteWeakETag(true);
    // servlet注入拦截器
    FilterRegistration.Dynamic shadowETagFilter = servletContext.addFilter("shadowETagFilter", eTagHeader);
    // 拦截dispatcherServlet
    shadowETagFilter.addMappingForServletNames(dispatchers, true, "dispatcherServlet");
    

      2、第二步,验证,第一次请求时请求头中无If-None-Match属性,响应码为200。再次请求时,请求头中有If-None-Match属性值,浏览器中的响应码为304

    // 调用request.getHeader方法
    if-none-match: W/"0d2d08b5003a04494f5de83f30a514e17"
    // 浏览器中查看
    Status Code: 304
  • 相关阅读:
    PHP中过滤数组中的元素
    cookie中文乱码解决(php/js)
    Ubuntu系统tar克隆
    磁盘IO性能监控(Linux 和 Windows)
    远程桌面由于帐户限制你无法登录问题
    SAP中关于用户IP信息的获取
    选择界面制作按钮
    ALV常用参数详细描述
    销售订单、外向交货单、交货 bapi
    abap 常用表
  • 原文地址:https://www.cnblogs.com/rain144576/p/12902972.html
Copyright © 2011-2022 走看看