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
  • 相关阅读:
    [C4] 前馈神经网络(Feedforward Neural Network)
    [C3] 正则化(Regularization)
    [C2] 逻辑回归(Logistic Regression)
    [C1] 线性回归(Linear Regression)
    Python基础学习
    装饰器
    完全理解Python迭代对象、迭代器、生成器
    django自己搭建的博客
    git学习,哇瑟说实话我想要的
    类继承和多态,子类重写构造函数,多重继承学习
  • 原文地址:https://www.cnblogs.com/rain144576/p/12902972.html
Copyright © 2011-2022 走看看