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

tomcat 缓存导致的严重问题

今天在部署jsp代码的时候,打成war包丢到线上服务器的tomcat容器里面。结果死活不出结果。 咨询了下同事,说是tomcat缓存的问题。...清理缓存方法如下: step1 停掉tomcat,进入tomcat的主目录。 step2 删掉work目录下全部文件(work目录不要删!)。 step3 删掉temp目录下的所有文件。...step4 再次启动tomcat即可 下面是摘自其他人博客的: tomcat有一个work目录,里面存放了页面的缓存,访问的jsp都会编译(从 work里进入Catalina后的如localhost站点文件夹下的项目...而tomcat显示的目录,都会从这个缓存里找编译后的jsp对应的class文件。所以当清空了work目录后,该过程将会从新来过。         ...有的时候会遇到一个问题,就是修改后的页面在tomcat运行的时候显示不了修改后的痕迹。这个时候删除work目录下对应的项目文件夹,重新启动tomcat就可以了。

3.6K30

Java面试——Tomcat

这是因为在生产环境中,很少讲 Tomcat直接对外开放接收请求,而是在 Tomcat和客户端之间加一层代理服务器(如Nginx),用于请求的转发、负载均衡、处理静态文件等;通过代理服务器访问 Tomcat...AJP协议负责和其他的Http服务器(如Apache)建立连接;在把 Tomcat与其他服务器集成时,就需要用到这个连接器,之所以使用 Tomcat和其他服务器集成,是因为 Tomcat可以用作 Servlet...进入 Tomcat 的请求可以根据 Tomcat 的工作模式分为如下两类: 【1】Tomcat 作为应用程序服务器:请求来自于前端的web服务器,这可能是 Apache, IIS, Nginx等;...【2】Tomcat 作为独立服务器:请求来自于web浏览器; Tomcat 的工作一般分为三种: 【1】**bio:**传统的Java I/O操作,同步且阻塞I/O,一个线程处理一个请求,并发量高时,...】定义 Tomcat 404 错误返回的页面; 【5】对 JVM进行优化; 【6】对 Tomcat线程池进行优化; 【7】更改 Tomcat的工作的模式;

82330
您找到你想要的搜索结果了吗?
是的
没有找到

java map 缓存_缓存用于

缓存 什么是缓存? 平常的开发项目中,多多少少都会使用到缓存,因为一些数据我们没有必要每次查询的时候都去查询到数据库。...缓存的使用场景: 在Java应用中,对于访问频率高,更新少的数据,通常的方案是将这类数据加入缓存中,相对从数据库中读取,读缓存效率会有很大提升。 在集群环境下,常用的分布式缓存有Redis等。...但在某些业务场景上,可能不需要去搭建一套复杂的分布式缓存系统,在单机环境下,通常是会希望使用内部的缓存(LocalCache)。...使用map缓存 方案: 基于ConcurrentHashMap实现数据缓存,实现线程安全要求 SoftReference:当内存不够的时候,GC会回收SoftReference所引用的对象 SoftReference...对于Cache,我们希望被缓存的对象最好始终常驻内存,但是如果JVM内存吃紧,为了不发生OutOfMemoryError导致系统崩溃,必要的时候也允许JVM回收Cache的内存,待后续合适的时机再把数据重新

1K20

java http缓存

HTTP/1.1中缓存的目的是为了在很多情况下减少发送请求,也即直接返回缓存;同时在许多情况下可以不需要发送完整响应。...缓存如何工作 所有的缓存都用一套规则来帮助他们决定什么时候使用缓存中的副本提供服务(假设有副本可用的情况下);一些规则在协议中有定义(HTTP协议1.0和1.1),一些规则由缓存的管理员设置(浏览器的用户或者代理服务器的管理员...); 一般说来:遵循以下基本的规则(不必担心,你不必知道所有的细节,细节将随后说明) 如果响应头信息:告诉缓存器不要保留缓存缓存器就不会缓存相应内容; 如果请求信息是需要认证或者安全加密的,相应内容也不会被缓存...一个缓存的副本如果含有以下信息:内容将会被认为是足够新的 含有完整的过期时间和寿命控制头信息,并且内容仍在保鲜期内; 浏览器已经使用过缓存副本,并且在一个会话中已经检查过内容的新鲜度; 缓存代理服务器近期内已经使用过缓存副本...,并且内容的最后更新时间在上次使用期之前; 够新的副本将直接从缓存中送出,而不会向源服务器发送请求; 如果缓存的副本已经太旧了,缓存服务器将向源服务器发出请求校验请求,用于确定是否可以继续使用当前拷贝继续服务

1.2K80

tomcat java_tomcat和maven的区别

缓存 什么是缓存[Cache] 存在内存中的临时数据 将用户经常查询的数据放在缓存(内存)中,用户去查询数据的时候就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题...为什么使用缓存 减少和数据库的数据交换次数,较少系统开销,提高系统效率 什么样的数据库能使用缓存 经常查询并且不经常改变的数据 Mybatis缓存 MyBatis 内置了一个强大的事务性查询缓存机制...要启用全局的二级缓存,只需要在你的 SQL 映射文件中添加一行: 一级缓存 一级缓存也叫本地缓存: 与数据库同一次会话期间查询到的数据库会放在本地缓存中 以后如果需要获取相同的数据,...二级缓存 二级缓存也叫全局缓存,一级缓存作用域太低了,所以诞生了二级缓存 基于namespace级别的缓存,一个名称空间,对应一个二级缓存 工作机制 一个会话查询到一条数据,这个数据就会被放在当前会话的一级缓存中...如果当前会话关闭了,这个会话对应的一级缓存就没了,但是我们想要的是,会话全关闭了,一级缓存中的数据被保存到二级缓存中 新的会话查询到信息,就可以从二级缓存中获取内容 不同的mapper查询出来的结果会放在自己的缓存

37040

tomcat java_maven和tomcat的关系

缓存 什么是缓存[Cache] 存在内存中的临时数据 将用户经常查询的数据放在缓存(内存)中,用户去查询数据的时候就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题...为什么使用缓存 减少和数据库的数据交换次数,较少系统开销,提高系统效率 什么样的数据库能使用缓存 经常查询并且不经常改变的数据 Mybatis缓存 MyBatis 内置了一个强大的事务性查询缓存机制...要启用全局的二级缓存,只需要在你的 SQL 映射文件中添加一行: 一级缓存 一级缓存也叫本地缓存: 与数据库同一次会话期间查询到的数据库会放在本地缓存中 以后如果需要获取相同的数据,...二级缓存 二级缓存也叫全局缓存,一级缓存作用域太低了,所以诞生了二级缓存 基于namespace级别的缓存,一个名称空间,对应一个二级缓存 工作机制 一个会话查询到一条数据,这个数据就会被放在当前会话的一级缓存中...如果当前会话关闭了,这个会话对应的一级缓存就没了,但是我们想要的是,会话全关闭了,一级缓存中的数据被保存到二级缓存中 新的会话查询到信息,就可以从二级缓存中获取内容 不同的mapper查询出来的结果会放在自己的缓存

39120

Tomcat优化(内存,并发,缓存,安全,网络,系统等)

一.Tomcat内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数 JAVA_OPTS...参数说明   -server 启用jdk 的 server 版   -Xms java虚拟机初始化时的最小内存   -Xmx java虚拟机可使用的最大内存   -XX: PermSize...---- ---- ---- 三、Tomcat缓存优化 1、tomcat的maxThreads、acceptCount(最大线程数、最大排队数) 说明: maxThreads:tomcat起动的最大线程数...Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的缩写。它拥有比传统I/O操作(bio)更好的并发运行性能。...如图所示在原有变量JAVA_OPTS后面追加对应的配置即可,添加一行新的就可以:JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"

8K64

Java知识:(3)Tomcat

关闭软件 a)找到%tomcat%/bin/shutdown.bat,双击这个文件即可! ? 2、Tomcat软件使用的常见问题 2.1、闪退问题 原因:Tomcat软件是java语言开发的。...Tomcat软件启动时,会默认到系统的环境变量中查找一个名称叫JAVA_HOME的变量。这个变量的作用是找到Tomcat启动所需的JVM。...解决办法; 到环境变量中设置JAVA_HOME的变量 JAVA_HOME= C:\Program Files\Java\jdk1.7.0_51  (注意别配置到bin目录下) 2.2、端口占用的错误 原因...JAVA_HOME后,还会再查找一个叫CATALINA_HOME变量,这个变量的作用是设置tomcat的根目录。...Servlet特点: 1)普通的java类,继承HttpServlet类,覆盖doGet方法 2)Servlet类只能交给tomcat服务器运行!!!!(开发者自己不能运行!!!)

54510

Java高并发缓存架构,缓存雪崩、缓存穿透之谜

面试官心理分析 其实这是问到缓存必问的,因为缓存雪崩和穿透,是缓存最大的两个问题,要么不出现,一旦出现就是致命性的问题,所以面试官一定会问你。...面试题剖析 缓存雪崩 对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。...这样的话,缓存中不会有,请求每次都“视缓存于无物”,直接查询数据库。这种恶意攻击场景的缓存穿透就会直接把数据库给打死。 ?...然后设置一个过期时间,这样的话,下次有相同的 key 来访问的时候,在缓存失效之前,都可以直接从缓存中取数据。...缓存击穿 缓存击穿,就是说某个 key 非常热点,访问非常频繁,处于集中式高并发访问的情况,当这个 key 在失效的瞬间,大量的请求就击穿了缓存,直接请求数据库,就像是在一道屏障上凿开了一个洞。

1.1K40

Java 征途:行者的地图

前段时间应因缘梳理了下自己的 Java知识体系, 成文一篇望能帮到即将走进或正在 Java 世界跋涉的程序员们。...好了,当完成可上面这些基础内容的学习后,我们得到了第一张地图,像下面这样。 [1240] 第二张,技能图 即使掌握了第一张图要在 Java 的世界自由驰骋还是有点小困难的。...所以,基础像内功、框架如兵器、运用为招式,存乎一心、运用之妙,三者融会贯通,则已可在 Java 世界纵横一方。 如上所述,基于此我们有了第二张地图。...在这个阶段的每个人都可能面临不同的环境和实践,所以这阶段形成的地图会千差万别。 下面是我的第三张图,仅供走在 Java 征途上的同行者们参考。 而按这千差万别的地图走过的路径,正巧构成独一无二的你。...[1240] 即使你现在还没地图,但也别茫然而永远的驻足不前。 保持前进总会找到路,其实我就是这么过来的,一直以来,不敢止步。 我有一个微信公众号,经常会分享一些Java技术相关的干货。

2.3K00

自学HarmonyOS应用开发(52)- 地图数据拼接和缓存

上一篇文章中我们获取了当前位置所处的地图瓦片并表示,本文介绍获取更多的瓦片数据并进行拼接的方法。...瓦片数据类 我们假设显示区域的中心是当前位置,以这个位置为中心分别向上下左右扩展地图瓦片就可以铺满整个表示区域的地图数据。...new HiLogLabel(HiLog.LOG_APP, 0x00208, "Tile"); int x = 0; int y = 0; int z = 0; // 地图来源...瓦片数据缓存 如果每次都重新获取地图数据势必拖慢表示速度,因此准备了一个瓦片数据缓存类,用来保存已经获取的地图数据: public class TileMapData { static final...如果需要的数据已经存在则不再重新获取;如果存在新获取的地图数据,则触发画面更新。

36930

Tomcat系列之奇怪的自动缓存问题处理方法

Tomcat系列之Context自动缓存问题处理方法 最近遇到一个tomcat缓存问题,首先是这样的,我改了一个jsp页面代码,然后部署到tomcat,再访问nginx链接,发现代码都没起效,好像是被缓存...,所以我先测一下不经过nginx的tomcat链接,发现补丁是起效的,所以说是nginx缓存问题?...ok,配置nginx浏览器不缓存之后,补丁还没被更新到,所以这就奇怪了,然后网上搜到这篇博客,启发: ?...先清tomcat缓存,到${tomcat_home}\work\Catalina\localhost ? 然后重启tomcat,发现是tomcat缓存导致?...发现在tomcat的server.xml配置: <Context docBase="D:\apache-<em>tomcat</em>-7.0.77\webapps\Portal" reloadable="true"

1.2K30

java缓存技术总结

Cache 二、缓存的分类 1、基于web应用的系统架构图 2、在系统架构的不同层级之间,为了加快访问速度,都可以存在缓存 操作系统磁盘缓存->减少磁盘机械操作 数据库缓存->减少文件系统I/O 应用程序缓存...,使用对象缓存将会极大降低Web系统对于数据库的访问请求 良好的设计数据库结构和利用对象缓存,能够提供极高的性能,对象缓存适合OLTP(联机事务处理)应用 2、查询缓存 对数据库查询结果集进行缓存,类似数据库的...查询缓存和对象缓存适用的场景不一样,是互为补充的 当查询结果集涉及的表记录被修改以后,需要注意清理缓存 3、页面缓存 a、作用 针对页面的缓存技术不但可以减轻数据库服务器压力,还可以减轻应用服务器压力...OScache提供了简单的Servlet缓存(通过web.xml中的配置) 也可以自己编程实现Servlet缓存 III、页面内部缓存 针对动态页面的局部片断内容进行缓存,适用于一些个性化但不经常更新的页面...(例如博客) OSCache提供了简单的页面缓存 可以自行扩展JSP Tag实现页面局部缓存 六、web服务器端缓存 基于代理服务器模式的Web服务器端缓存,如squid/nginx Web服务器缓存技术被用来实现

2.2K50

Java内存缓存-通过Map定制简单缓存

为什么要用缓存 ? 场景 在Java应用中,对于访问频率高,更新少的数据,通常的方案是将这类数据加入缓存中,相对从数据库中读取,读缓存效率会有很大提升。...方案 基于JSR107规范自研 基于ConcurrentHashMap实现数据缓存 JSR107规范目标 为应用程序提供缓存Java对象的功能。 定义了一套通用的缓存概念和工具。...最小化开发人员使用缓存的学习成本。 最大化应用程序在使用不同缓存实现之间的可移植性。 支持进程内和分布式的缓存实现。...小例子 使用Map来实现一个简单的缓存功能 MapCacheDemo.java package me.xueyao.cache.java; import java.lang.ref.SoftReference...; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; /** * @author simon *

3.5K41
领券