当前位置: 首页 > news >正文

tomcat 的缓存机制

  1. HTTP缓存:Tomcat支持HTTP缓存机制,可以通过设置响应头中的Cache-Control、Expires和ETag等字段来控制缓存策略。这些字段告诉浏览器是否可以缓存响应以及缓存的有效期等信息。

  2. Servlet缓存:Tomcat还提供了Servlet缓存机制,它可以缓存Servlet的响应内容,避免重复生成相同的响应。通过在web.xml文件中配置<cacheable>true</cacheable>,可以启用Servlet缓存。

  3. 会话缓存:Tomcat支持会话(Session)缓存,可以将会话数据存储在内存中,提高会话的访问速度。可以通过在context.xml文件中配置<Manager className="org.apache.catalina.session.PersistentManager" />来启用会话缓存。

  4. 静态资源缓存:Tomcat可以缓存静态资源(如图片、CSS和JavaScript文件),以减少对文件系统的访问。可以通过配置context.xml文件中的<Resources>元素来启用静态资源缓存。

事出做项目时一个jsp页面修改后一直没有读出来,后来仔细研究了下tomcat才发现
当请求jsp页面时,Tomcat会分派给JspServlet来处理,在jspServlet的方法 service()中有一句
boolean precompile = preCompile(request); 
它会判断你请求jsp页面时有没有带?jsp_precompile查询字符串,如果带了就会重新编译
然后再由serviceJspFile(request, response, jspUri, null, precompile)进一步判断是否要进行编译jsp文件,下面是JspServletWraper service方法

 if (options.getDevelopment() || firstTime ) { synchronized (this) { if (firstTime) { 
firstTime = false; 
} 
// The following sets reload to true, if necessary 
ctxt.compile(); 
} 
} 

关键就在Compiler的isOutDated(boolean checkClass) 的判断上 。
判断标准是,如果 jsp最后修改时间大于目标文件的最后修改时间要重新编译。还有一种情况就是即使jsp的最后修改时间晚于目标文件的最后修改时间,但只要jsp中用了
include指令包含的某个文件的最后修改时间早于对应目标文件的修改时间的话,也是需要重新编译主jsp文件的

相关文章:

tomcat 的缓存机制

HTTP缓存&#xff1a;Tomcat支持HTTP缓存机制&#xff0c;可以通过设置响应头中的Cache-Control、Expires和ETag等字段来控制缓存策略。这些字段告诉浏览器是否可以缓存响应以及缓存的有效期等信息。 Servlet缓存&#xff1a;Tomcat还提供了Servlet缓存机制&#xff0c;它可以…...

laravel 压缩文件与解压文件

一、引入第三方类 composer require chumper/zipper二、第三方类配置 providers>[Chumper\Zipper\ZipperServiceProvider::class ]aliases > [Zipper > Chumper\Zipper\Zipper::class ]三、压缩解压缩实例 <?php namespace App\Http\Controllers\Upload; use A…...

kind搭建k8s集群用于测试

安装kind 需要先安装go kind基于go开发 #第一种安装方式#修改go源加快下载速度 go env -w GOPROXYhttps://goproxy.cn,direct #直接下载安装kind最新版本 go install sigs.k8s.io/kindlatest #进入GOPATH目录找到bin目录下kind执行程序 移动到环境变量里 mv ./kind /usr/local…...

软件测试人需要掌握的测试知识架构体系(上)

软件计划与可行性研究&#xff08;问题定义、可行性研究&#xff09;&#xff1b;需求分析&#xff1b;软件设计&#xff08;概要设计、详细设计&#xff09;&#xff1b;编码&#xff1b;软件测试&#xff1b;运行与维护。 一、软件的生命周期(SDLC) 1、生存周期划分 各阶段…...

QT数据库,实现数据库增删改查

QT关于数据库的相关概念 QT将数据库分为三个层次&#xff1a; 数据库驱动层&#xff1a;QSqlDriver、QSqlDriverCreator、QSqlDriverCreatorBase、QSqlDriverPlugin sql接口层&#xff1a;QSqlDatabase、QSqlQuery、QSqlRecord、QSqlError 用户接口层&#xff1a;提供一些模…...

SQL-子查询

SQL 子查询 是指将一个SELECT查询&#xff08;子查询&#xff09;的结果用括号括起来作为另一个SQL语句的数据来源或者判断条件...

【8章】Spark编程基础(Python版)

课程资源&#xff1a;&#xff08;林子雨&#xff09;Spark编程基础(Python版)_哔哩哔哩_bilibili 第8章 Spark MLlib&#xff08;6节&#xff09; 机器学习算法库 &#xff08;一&#xff09;MLlib简介 1、机器学习 机器学习可以看做是一门人工智能的科学&#xff0c;该领…...

桌面应用小程序,一种创新的跨端开发方案

Qt Group在提及2023年有桌面端应用程序开发热门趋势时&#xff0c;曾经提及三点&#xff1a; 关注用户体验&#xff1a;无论您是为桌面端、移动端&#xff0c;还是为两者一起开发应用程序&#xff0c;有一点是可以确定的&#xff1a;随着市场竞争日益激烈&#xff0c;对产品的期…...

将本地jar打包到本地maven仓库或maven私服仓库中

将本地jar包打包到本地的maven仓库中的命令&#xff1a; mvn install:install-file -DgroupIdtebie.applib.api -DartifactIdapiclient -Dversion1.0-SNAPSHOT -Dfile本地jar路径 -Dpackagingjar说明&#xff1a; DgroupId pom中的<groupId></groupId> Dartifact…...

java 实现建造者模式

建造者模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;用于创建一个复杂对象&#xff0c;将对象的构建过程与其表示分离&#xff0c;以便可以使用相同的构建过程来创建不同的表示。在Java中&#xff0c;可以使用建造者模式来构建具有多个属性的对…...

串行FIR滤波器

串行 FIR 滤波器设计 串行设计&#xff0c;就是在 16 个时钟周期内对 16 个延时数据分时依次进行乘法、加法运算&#xff0c;然后在时钟驱动下输出滤波值。考虑到 FIR 滤波器系数的对称性&#xff0c;计算一个滤波输出值的周期可以减少到 8 个。串行设计时每个周期只进行一次乘…...

Spring Boot 整合 Shiro(后端)

1 Shiro 什么是 Shiro 官网&#xff1a; http://shiro.apache.org/ 是一款主流的 Java 安全框架&#xff0c;不依赖任何容器&#xff0c;可以运行在 Java SE 和 Java EE 项目中&#xff0c;它的主要作用是对访问系统的用户进行身份认证、 授权、会话管理、加密等操作。 …...

面试中的自我介绍:首印象决定一切

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…...

深入理解联邦学习——联邦学习的价值

分类目录&#xff1a;《深入理解联邦学习》总目录 毫无疑问&#xff0c;如今我们正经历互联网第四次信息革命&#xff0c;坐拥海量的信息与数据。这些数据如果能够用AI的方式进行解读&#xff0c;将会为人类日常生活带来颠覆性变革。联邦学习作为未来AI发展的底层技术&#xff…...

linux 内存一致性

linux 出现内存一致性的场景 1、编译器优化 &#xff0c;代码上下没有关联的时候&#xff0c;因为编译优化&#xff0c;会有执行执行顺序不一致的问题&#xff08;多核单核都会出现&#xff09; 2、多核cpu乱序执行&#xff0c;cpu的乱序执行导致内存不一致&#xff08;多核出…...

Vue 如何监听 localstorage的变化

需求 分析 1. 初始想法 computed: {lonlat(){console.log(localStorage.getItem(lonlat))return localStorage.getItem(lonlat)}},watch: {lonlat(newVal,oldVal){console.log(1002,newVal,oldVal)}},我们想着用 计算属性 computed 和 watch 监听实现&#xff0c;但根本没有…...

ActiveMQ使用JDBC持久化消息

为了避免服务器宕机而导致消息丢失&#xff0c;ActiveMQ提供消息持久化机制。 ActiveMQ提供多种消息持久化的方式&#xff0c;如LevelDB Store、KahaDB 、AMQ、JDBC等&#xff0c;详情可以访问官网。 ActiveMQ默认是使用KahaDB持久化消息。在/conf/activemq.xml如下配置&…...

光环云出席Enjoy出海AIGC主题研讨会,助力企业迎接AI时代机遇与挑战

AIGC的崛起&#xff0c;为2023年的全球化突围之路拓展了想象空间。 从年初至今&#xff0c;OpenAI和ChatGPT高举高打&#xff0c;很大程度上起到了教育市场的作用&#xff1b;此外&#xff0c;Meta推出大模型&#xff0c;Snapchat、Soul、字节等大厂或上线或内测聊天机器人&…...

动态规划:路径和子数组问题(C++)

动态规划&#xff1a;路径和子数组问题 路径问题1.不同路径&#xff08;中等&#xff09;2.不同路径II&#xff08;中等&#xff09;3.下降路径最⼩和&#xff08;中等&#xff09;4.地下城游戏&#xff08;困难&#xff09; 子数组问题1.最大子数组和&#xff08;中等&#xf…...

微服务-gateway跨域配置

文章目录 一、前言二、gateway跨域配置1、问题描述1.1、什么是跨域请求&#xff1f;1.1.1、同源策略1.1.2. 安全性考虑1.1.3. 跨域攻击 1.2、问题产生原因 2、解决方法2.1、修改配置文件2.2、配置类统一配置2.3、全局跨域拦截器 三、总结 一、前言 在SpringCloud项目中&#x…...

长远赋能——TVA系统助力汽车零部件企业智能化转型升级

「本文已用流量券推广&#xff0c;欢迎收藏 关注」在工业4.0浪潮推动下&#xff0c;智能化转型升级已成为汽车零部件企业实现高质量发展的必由之路&#xff0c;而质量检测作为生产环节的核心组成部分&#xff0c;其智能化水平直接决定了企业的转型升级成效。TVA高精度AI智能视…...

seo 优化计划包括哪些内容

SEO优化计划&#xff1a;打造高效网站流量的全面指南 在当前数字化时代&#xff0c;一个成功的网站离不开高效的搜索引擎优化&#xff08;SEO&#xff09;策略。SEO优化计划是一项复杂而多层次的工作&#xff0c;其目的是提升网站在搜索引擎结果中的排名&#xff0c;从而吸引更…...

Mem Reduct多语言界面配置指南:跨平台语言适配与企业级部署方案

Mem Reduct多语言界面配置指南&#xff1a;跨平台语言适配与企业级部署方案 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduc…...

JetBrains IDE试用期重置终极指南:如何轻松实现30天无限续杯

JetBrains IDE试用期重置终极指南&#xff1a;如何轻松实现30天无限续杯 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 你是否曾经在项目冲刺的关键时刻&#xff0c;突然被JetBrains IDE弹出的"试用期已结束…...

SAP项目顾问必看:CJ02/CJ20N用户状态报错全解析(附REL联动设置技巧)

SAP项目顾问进阶指南&#xff1a;CJ02/CJ20N用户状态报错深度解析与REL联动实战 在SAP项目实施过程中&#xff0c;WBS&#xff08;工作分解结构&#xff09;元素的状态管理一直是项目模块顾问的核心工作之一。特别是当项目进入执行阶段&#xff0c;CJ02/CJ20N事务码中频繁出现的…...

如何让旧iPhone/iPad焕发新生:Legacy-iOS-Kit终极降级指南

如何让旧iPhone/iPad焕发新生&#xff1a;Legacy-iOS-Kit终极降级指南 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit …...

告别重复造轮子:用快马平台高效生成Touchgal手势业务模块

告别重复造轮子&#xff1a;用快马平台高效生成Touchgal手势业务模块 在电商项目开发中&#xff0c;商品详情页的手势交互一直是提升用户体验的关键环节。最近在做一个移动端电商项目时&#xff0c;我需要为商品详情页实现完整的手势操作功能&#xff0c;包括图片缩放、滑动切…...

避坑指南:n8n调用MinerU MCP时常见的3个配置错误及解决方法

避坑指南&#xff1a;n8n调用MinerU MCP时常见的3个配置错误及解决方法 当你第一次尝试将n8n与MinerU MCP结合使用时&#xff0c;可能会遇到一些令人头疼的配置问题。作为一位经历过无数次调试的老手&#xff0c;我想分享几个最常见的陷阱及其解决方案&#xff0c;希望能帮你节…...

跨平台音乐资源整合工具:打破音乐平台壁垒的技术方案与实践指南

跨平台音乐资源整合工具&#xff1a;打破音乐平台壁垒的技术方案与实践指南 【免费下载链接】music-api 各大音乐平台的歌曲播放地址获取接口&#xff0c;包含网易云音乐&#xff0c;qq音乐&#xff0c;酷狗音乐等平台 项目地址: https://gitcode.com/gh_mirrors/mu/music-ap…...

Obsidian本地图片终极管理指南:5步打造永不失效的笔记图片库

Obsidian本地图片终极管理指南&#xff1a;5步打造永不失效的笔记图片库 【免费下载链接】obsidian-local-images-plus This repo is a reincarnation of obsidian-local-images plugin which main aim was downloading images in md notes to local storage. 项目地址: http…...