首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Spring5XML的WebContentInterceptor中设置cacheControlMappings

在Spring5XML的WebContentInterceptor中设置cacheControlMappings,可以通过以下步骤完成:

  1. 创建一个XML配置文件,例如spring-servlet.xml,并在其中配置WebContentInterceptor bean。
代码语言:txt
复制
<bean id="webContentInterceptor" class="org.springframework.web.servlet.mvc.WebContentInterceptor">
    <property name="cacheControl" value="no-cache" />
    <property name="cacheSeconds" value="0" />
    <property name="useExpiresHeader" value="true" />
    <property name="useCacheControlHeader" value="true" />
    <property name="useCacheControlNoStore" value="true" />
    <property name="alwaysUseFullPath" value="true" />
    <property name="cacheMappings">
        <props>
            <prop key="/path1/**">public, max-age=3600</prop>
            <prop key="/path2/**">private, no-store</prop>
        </props>
    </property>
</bean>
  1. 在XML配置文件中配置HandlerMapping bean,将WebContentInterceptor与对应的URL路径进行关联。
代码语言:txt
复制
<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="interceptors">
        <list>
            <ref bean="webContentInterceptor" />
        </list>
    </property>
    <property name="mappings">
        <props>
            <prop key="/path1/**">someController1</prop>
            <prop key="/path2/**">someController2</prop>
        </props>
    </property>
</bean>
  1. 在XML配置文件中配置HandlerAdapter bean,用于处理请求。
代码语言:txt
复制
<bean id="handlerAdapter" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="messageConverters">
        <list>
            <!-- Configure message converters if needed -->
        </list>
    </property>
</bean>
  1. 在XML配置文件中配置ViewResolver bean,用于解析视图。
代码语言:txt
复制
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
</bean>
  1. 在XML配置文件中配置DefaultServletHandlerConfigurer bean,用于处理静态资源。
代码语言:txt
复制
<mvc:default-servlet-handler />
  1. 在XML配置文件中配置RequestMappingHandlerMapping bean,用于处理请求映射。
代码语言:txt
复制
<bean id="requestMappingHandlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
    <property name="useSuffixPatternMatch" value="false" />
    <property name="useTrailingSlashMatch" value="true" />
</bean>

以上配置完成后,WebContentInterceptor将会拦截指定路径的请求,并根据cacheMappings中的配置设置相应的缓存控制头信息。

对于cacheMappings中的每个URL路径,可以设置不同的缓存控制策略。例如,/path1/**可以设置为public, max-age=3600,表示对于该路径下的资源,可以被公共缓存,并且最长缓存时间为3600秒。/path2/**可以设置为private, no-store,表示对于该路径下的资源,不允许被缓存。

推荐的腾讯云相关产品和产品介绍链接地址如下:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

良心教程 | 如何在Typora设置免费图床

设置好之后,写一篇教程,记录一下。 ❞ 「秀技能」 ❝今天同事发给我一个md文件,一往昔,图片没有显示出来,我说又到了我安利给你图床时候了,「免费」,「快速」,「粘贴后自动上传」,这三点不香吗。...这样,在Typora书写,在markdown nice渲染,然后复制到知乎和公众号上,非常流畅,多年梦想终于实现了。闭环感觉,别提多爽了,哈哈 ❞ 1....无论是免费图库,还是将项目放上面,还是将电子书放上面,还是将博客放上面,都非常方便。后面我介绍如何在上面使用bookdown写书。 ❞ 2....新建gitee项目 ❝飞哥注:这里主要是设置秘钥,然后copy到PicGo,就可以自动关联了。 ❞ 点击个人头像,点击设置: ?...设置PicGo ❝飞哥注:注意这里repo要填写用户名+项目名,不要有http,不要有git,比如dengfei2013/tuku ❞ 打开PicGo,找到图床设置,找到gitee,填写相关信息 repo

5.7K10

何在 React Select 标签上设置占位符?

在 React , 标签是用于创建下拉选择框组件。在某些情况下,我们希望在选择框添加一个占位符,以提醒用户选择合适选项。...本文将详细介绍如何在 React 标签上设置占位符,并提供示例代码帮助你理解和应用这个功能。...使用 disabled 属性一种常用方法是使用 disabled 属性来模拟占位符。通过将一个默认选项设置为禁用状态,我们可以在选择框显示一个占位符,并阻止用户选择该选项。...注意事项需要注意以下几点:通过设置一个禁用占位符选项,我们可以在选择框显示占位符文本,并阻止用户选择该选项。在处理选择框值时,需要使用事件处理函数来更新状态。...结论本文详细介绍了在 React 如何设置 标签占位符。

3.1K30

何在Ubuntu 16.04上Jenkins设置持续集成管道

设置Jenkins访问GitHub 返回主Jenkins仪表板,单击左侧菜单Manage Jenkins: [Manage Jenkins] 在下一页链接列表,单击“ 配置系统”: [配置系统]...在GitHub帐户设置演示应用程序 为了演示如何使用Jenkins测试应用程序,我们将使用一个用Hapi.js创建“hello world”程序。...Test步骤打印另一条消息,然后按package.json文件定义运行测试。 我们可以设置Jenkins来监视Jenkinsfile存储库并在引入更改时运行该文件。...在Jenkins创建一个新管道 接下来,我们可以设置Jenkins使用GitHub个人访问令牌来查看我们存储库。...为了触发Jenkins设置适当hook,我们需要在第一次执行手动构建。 在管道主页面,单击左侧菜单“ 立即构建”: [立即构建] 这将开始新构建。

6K30

何在Puppeteer设置User-Agent来绕过京东反爬虫机制?

正文Puppeteer 是一个由 Google 开发 Node.js 库,它提供了高级 API,用于控制无头浏览器(Headless Browser), Chrome 或 Chromium。...Puppeteer 实时端点位于它可以模拟用户在浏览器操作,包括点击、填写表单、截图等。这使得我们可以使用Puppeteer来模拟真实用户行为,获取想要数据。...例如,京东可能会检测到我们使用了自动化工具,并阻止我们访问。为了解决这个问题,我们可以使用代理服务器来隐藏我们真实IP地址,并设置合适User-Agent来模拟真实用户访问。...await browser.close();}main();当使用 User-Agent 时,有几个注意事项需要考虑:隐私保护:User-Agent 可能包含有关用户敏感信息,操作系统、浏览器版本等...版本控制:User-Agent 版本信息对于确定浏览器或设备功能和支持特性非常重要。在开发过程,可以根据不同 User-Agent 版本来选择适当代码路径或功能。

1.1K50

何在 Visual Studio 2019 设置使用 .NET Core SDK 预览版(全局生效)

但几个更新版本其开关位置不同,本文将介绍在各个版本位置,方便你找到然后设置。...,.NET Core 在设置是有一个专用选项,在这里: 工具 -> 选项 项目和解决方案 -> .NET Core -> 使用 .NET Core SDK 预览版 如果你是英文版 Visual....NET Core SDK 预览版设置是全局生效。...也就是说,你在 Visual Studio 2019 中进行了此设置,在命令行中使用 MSBuild 或者 dotnet build 命令进行编译也会使用这样设置项。...那么这个全局设置项在哪个地方呢?是如何全局生效呢?可以阅读我其他博客: Visual Studio 2019 中使用 .NET Core 预览版 SDK 全局配置文件在哪里?

1.2K20

DevExpress控件gridcontrol表格控件,如何在属性设置某一列显示为图片(图片按钮)

DevExpress控件gridcontrol表格控件,如何在属性设置某一列显示为图片(图片按钮)?效果如下图: ? 通过属性设置,而不用写代码。...由于此控件属性太多了,就连设置背景图片属性都有好几个地方可以设置。本人最近要移植别人开发项目,找了好久才发现这个属性位置。之前一直达不到这种效果。...属性设置步骤和方法如下: 首先添加gridcontrol控件,如下图,点击Run Designer ?...然后点击Columns添加列,点击所添加列再按照如下步骤设置属性: 在属性中找到ColumnEdit,把ColumnEditTextEditStyle属性设置为HideTextEditor;  展开...ColumnEdit,把ColumnEditButtons展开,将其Kind属性设置为Glyph; 找到其中Buttons,展开,找到其中0-Glyph,展开,找到其中ImageOptions

5.9K50

Spring MVC更多家族成员---框架内处理流程拦截与HandlerInterceptor---08

如果我们设置requiresession属性为true,同时又发现当前请求不能返回一个已经存在Session实例,WebContentInterceptor将抛出HttpSessionRequiredException...检查缓存时间并通过设置相应HTTP头(Header)方式控制缓存行为。WebContentInterceptor允许我们通过setCacheSeconds方法设置请求内容缓存时间。...注意 UserRoleAuthorizationInterceptor和WebContentInterceptor:都是只在preHandle拦截方法实现了相应拦截逻辑。...WebApplicationContext获取其将使用Filter委派对象,然后读取原始Filter配置信息,并设置给委派对象使用等。...beanName //如果当前Filter实现加入了IOC容器管理,那么由BeanNameAware进行设置 //否则根据web.xml配置初始化参数决定 @Nullable private

46520

SpringMVC源码解析WebContentGenerator

便捷为任何类型网页内容产生父类,像 AbstractController WebContentInterceptor 也可用于自定义处理器HandlerAdapter 。...注:Spring4.2作为,使用只有当这种默认行为改变setCacheSeconds ,发送HTTP响应头是符合当前浏览器和代理服务器实现(即没有HTTP 1.0头了)恢复到以前行为可以很容易地通过使用完成新近弃用方法之一...WebContentGenerator supportedMethods、requireSession、useExpiresHeader、useCacheControlHeader、useCacheControlNoStore...后面可配置属性,分析它们主要作用: supportedMethods:设置支持请求方式,默认是上面的三种,如果是其他请求方式,可以通过bean注入加入集合 requireSession :判断浏览器是否必须含有...session,如果设置为true必须,浏览器没有session则会报错(HttpSessionRequiredException异常) useExpiresHeader:是否使用HTTP1.0协议缓存控制响应头

15920

针对Xshell Plus 7功能和使用技巧介绍:会话管理、权限认证、自动化任务、文件传输、整合应用和实用技巧

,方便快速访问和切换 权限和认证 用户身份验证方式区别:讲解不同用户身份验证方式(密码、SSH密钥、公钥)及其特点和用途 SSH密钥管理方法和注意事项:介绍如何生成、导入和管理SSH密钥,以及需要注意安全事项...自动化任务和脚本 使用Xshell脚本语言自动化任务基本原理:介绍Xshell脚本语言基本语法和用法,如何编写和执行自动化任务 常见自动化任务示例和实用技巧:提供一些常见自动化任务示例,批量执行命令...、自动上传下载文件等,并分享一些实用技巧和注意事项 Xftp 7功能介绍 文件传输管理 连接和管理远程服务器方法:介绍如何在Xftp 7连接和管理远程服务器,包括添加和编辑服务器信息步骤 文件上传和下载技巧和注意事项...:分享一些文件上传和下载技巧,断点续传、传输队列等,并提醒注意一些常见问题 文件同步和同步文件夹 同步文件夹设置和使用方法:介绍如何在Xftp 7设置和使用同步文件夹功能,实现文件自动同步和备份...断点续传使用技巧和注意事项:讲解断点续传原理,以及如何在文件传输中使用断点续传功能,保证传输可靠性和效率 Xshell Plus 7整合应用 在远程管理同时使用Xshell和Xftp优势:

46200

ANSYS Workbench项目分析与案例实操详解

根据具体需求选择适当选项,并按照向导指导完成项目的创建。 导入模型 在项目中导入需要分析模型。ANSYS Workbench支持导入多种格式CAD模型,STEP、IGES等。...点击"Geometry"模块,选择"Import Geometry"命令,并选择相应模型文件进行导入。 设置边界条件和材料属性 在"Model"模块设置边界条件和材料属性。...根据具体问题,设置模型约束条件、加载条件等,并为不同材料分配相应材料属性。 创建分析系统 在"Systems"模块创建分析系统。...ANSYS Workbench支持多种分析类型,结构分析、流体分析、热传导分析等。选择适当分析类型,并配置相应分析设置。 运行分析 在"Solution"模块运行分析。...通过准备工作、创建项目、导入模型、设置边界条件和材料属性、创建分析系统、运行分析以及结果后处理等环节,读者可以了解如何在ANSYS Workbench中进行工程分析。

66130

安卓usb调试模式还是无法连接_android usb

一 如何在不同品牌Android手机上启用USB调试 由于Android手机品牌多种多样,因此在这里我们仅列出国内最受欢迎Android手机品牌,包括华为,OPPO,ViVO,小米,魅族向您展示如何调试...如何在ViVO手机上启用USB调试模式 操作步骤: (1)设置>>更多设置>>版本信息>>点击”软件版本号”7次; (2)设置>>更多设置>>开发者选项>>开启开发者选项>>开启USB调试。...如何在小米(Redmi / Xiaomi)上启用USB调试模式 操作步骤: (1)设置>>我设备>>全部参数>>点击”MIUI版本”7次; (2)设置>>更多设置>>开发者选项>>开启开发者选项>>开启...二 如何在不同Android版本上启用USB调试模式 不同安卓系统启用USB调试模式方法不同,根据自己设备系统版本选择适合方法进行调试。...发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

2.3K30

Python与NoSQL数据库(MongoDB、Redis等)面试问答

在现代软件开发,NoSQL数据库(MongoDB、Redis等)因其灵活数据模型和高并发性能被广泛应用。...缓存策略与数据一致性面试官可能询问您如何在Python应用利用Redis实现数据缓存,以及如何处理缓存与数据库间数据一致性问题。...过度依赖低效查询:了解如何在MongoDB编写高效查询(使用索引、投影),以及如何在Redis合理组织数据结构以提高访问效率。...忽略数据过期与清理:在使用Redis作为缓存时,明确设置合理过期时间(TTL),并考虑使用定期任务清理无效数据。...结语熟练掌握Python与NoSQL数据库(MongoDB、Redis)交互,不仅有助于提升日常开发效率,也是面试环节加分项。

12200

【DB笔试面试511】如何在Oracle写操作系统文件,写日志?

题目部分 如何在Oracle写操作系统文件,写日志? 答案部分 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。...在CLIENT_INFO列存放程序客户端信息;MODULE列存放主程序名,名称;ACTION列存放程序包过程名。该包不仅提供了设置这些列值过程,还提供了返回这些列值过程。...如何在存储过程暂停指定时间? DBMS_LOCK包SLEEP过程。例如:“DBMS_LOCK.SLEEP(5);”表示暂停5秒。 DBMS_OUTPUT提示缓冲区不够,怎么增加?...采用命令“DBMS_OUTPUT.ENABLE(20000);”,另外,如果DBMS_OUTPUT信息不能显示,那么需要设置SET SERVEROUTPUT ON。...如何在Oracle写操作系统文件,写日志? 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。

28.8K30

Go如何使用私有仓库模块

今天我来讲一讲在 golang 何在项目中引用私有仓库吧,在我们实际生产开发,往往需要在项目中引用内部代码管理平台上仓库代码,接下来我来介绍如何在 golang 中使用私有仓库模块。...设置 我们私有代码往往存储在内部代码管理平台( gitlab, gittee 等)上,假设我们地址是 git.com. 接下来开始设置一些配置项。 设置 GOPRIVATE 变量。...我们先设置 GOPRIVATE 环境变量,GOPRIVATE 会将 GOPRIVATE 变量值所匹配路径前缀视为私有模块,就不会使用代理和进行校验。...设置了 GOPRIVATE 变量后,GONOPROXY 和 GONOSUMDB 环境变量 也会接收同样值。...设置 GOINSECURE 变量 我们 gitlab 等代码管理平台往往没有使用 https 协议,所以我们需要设置 GOINSECURE 变量,GOINSECURE 变量值以逗号分隔,其中每一个值在

3.5K30
领券