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
  • 相关阅读:
    动手动脑
    选课1.0
    四则运算
    JAVA异常处理机制资料整理
    JAVA学习日报(快乐作业) 10.27
    JAVA学习日报(快乐作业) 10.20
    JAVA学习日报 9/30
    JAVA学习日报 9/28
    JAVA学习日报 9/27
    JAVA学习日报 9/26
  • 原文地址:https://www.cnblogs.com/rain144576/p/12902972.html
Copyright © 2011-2022 走看看