當前位置:首頁 » 硬碟大全 » tomcat怎麼設置緩存
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

tomcat怎麼設置緩存

發布時間: 2022-11-07 06:24:59

① 如何清除tomcat緩存

清除tomcat緩存的具體步驟如下:

我們需要准備的材料分別是:電腦、tomcat。

1、首先我們需要點擊打開Tomcat安裝目錄,之後點擊打開temp文件夾。

② windows 安裝的tomcat 怎麼設置緩存文件

進入tomcat根目錄,找如下路徑
work/catalina/
刪除這個文件夾下的所有東西
其次,還應當把部署到tomcat下的項目刪除掉
方法,返回根目錄,找如下路徑
/webapps
將所有文件刪除即可

③ Tomcat如何設置資源過期時間

以下是設置session時間的3個方法:
1. 在tomcat——>conf——>servler.xml文件中定義:
<Context path="/test" docBase="/test"
defaultSessionTimeOut="3600" isWARExpanded="true"
isWARValidated="false" isInvokerEnabled="true"
isWorkDirPersistent="false"/>
defaultSessionTimeOut="3600"
2. 項目所在目錄下的web.xml中定義:
<session-config>
<session-timeout>20</session-timeout>
</session-config>
3. 在程序中定義:
session.setMaxInactiveInterval(30*60);
設置單位為秒,設置為-1永不過期。

④ 怎麼在只使用tomcat的情況上,自動緩存js和css或者image等文件

給網址後面添加一個隨機數(或者是任意的字元串)即可,比如原來的網址是這樣的:
http....../.../1.htm
改為
http....../.../1.htm?1234
即可(注意問號不能省)。
瀏覽器是根據網址來緩存的,所以只要給網址接個尾巴,瀏覽器就會認為是新網址,就會從網上重新下載數據了。當然,如果下次再次改變了網頁內容,這個尾巴就要再次修改。
給css和js添加所謂版本號其實也是同一個原理。這個版本號其實就是給css和js的網址接個尾巴而已。
這個也同樣適用網頁裡面的圖片、音樂等資源,事實上只要是http協議的元素都可以利用這個辦法來避開緩存實時刷新。

⑤ TOMCAT的JSP緩存和JAVA內存機制求教

TOMCAT剛重啟,內存很好,用JCONSOLE看也很好,但是經過一天2個訪問峰後,第一台機器(負載較為厲害的)內存達到2.5G,LINUX TOP後查看,JAVA佔用3.5G(當然這個數字不是最准確的),堆內存為2.2,OLD代已經滿了,OLD代GC不動,NEW代內存在浮動,然後過不長時間內存就爆HEAP內存溢出了。
後來,我用JMAP把內存打成DUMP,下到我本地,用JAVA內存分析器看,內存泄露報告顯示,泄漏的內存全為:JSPSERVLET。因為我伺服器JSP文件很多,所以報這個問題,我也理解。但是我很郁悶的是,我找不到如果配置TOMCAT清理JSP緩存的方法,我的SESSION為15分鍾。
或者還可能有其他的關於內存的問題,我不知道,也正在查,不知道各位高手能不能從我的只言片語中看出我的伺服器大概存在什麼問題。
我現在主要疑問是,如何才能控制TOMCAT清理JSP緩存。

⑥ Tomcat 6.0 緩存設置

1.jsp頁面加
<head>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
2.工具--設置internet選項---常規----瀏覽歷史記錄----設置----第一個每次瀏覽網頁時
希望對你有幫助

⑦ 關於tomcat緩存問題

你清空客戶機的IE緩存,js是緩存在客戶端的,不是緩存在tomcat里。

⑧ TOMCAT的JSP緩存和JAVA內存機制求教

TOMCAT剛重啟,內存很好,用JCONSOLE看也很好,但是經過一天2個訪問峰後,第一台機器(負載較為厲害的)內存達到2.5G,LINUX
TOP後查看,JAVA佔用3.5G(當然這個數字不是最准確的),堆內存為2.2,OLD代已經滿了,OLD代GC不動,NEW代內存在浮動,然後過不長時間內存就爆HEAP內存溢出了。
後來,我用JMAP把內存打成DUMP,下到我本地,用JAVA內存分析器看,內存泄露報告顯示,泄漏的內存全為:JSPSERVLET。因為我伺服器JSP文件很多,所以報這個問題,我也理解。但是我很郁悶的是,我找不到如果配置TOMCAT清理JSP緩存的方法,我的SESSION為15分鍾。
或者還可能有其他的關於內存的問題,我不知道,也正在查,不知道各位高手能不能從我的只言片語中看出我的伺服器大概存在什麼問題。
我現在主要疑問是,如何才能控制TOMCAT清理JSP緩存。

⑨ 1 如何優化Tomcat

(1)bin:主要用來存放命令,.bat是windows下,.sh是Linux下
(2)conf:主要用來存放tomcat的一些配置文件
(3)lib:存放tomcat依賴的一些jar包
(4)logs:存放tomcat在運行時產生的日誌文件
(5)temp:存放運行時產生的臨時文件
(6)webapps:存放應用程序
(7)work:存放tomcat運行時編譯後的文件,比如JSP編譯後的文件

tomcat優化可以有幾個方向:配置項的刪除,配置參數的修改,jdk參數修改、Tomcat內存優化、Tomcat並發優化、Tomcat緩存優化

web項目中自帶的WEB-INF/web.xml,
tomcat自帶的conf/web.xml以及conf/server.xml文件。
因為這些xml文件都會被tomcat解析,所以優化方向是將這三類文件中不必要的配置刪除。

tomcat在啟動時,會將web項目中WEB-INF/web.xml和自己的conf/web.xml進行合並,然後在ContextConfig類下的configureContext()統一解析這些內容:

這個只能是在項目中不需要的配置不要放進去,有過期的配置要及時刪除,減少tomcat的解析成本。

這是一個處理靜態文件的servlet,如果項目中不需要tomcat進行靜態文件的處理,可以將其刪掉。

這個servlet是用來編譯和執行jsp文件的,如果項目中沒有jsp文件,可以將其刪掉。

項目中沒有jsp,關於jsp下面的映射也可以刪除:

文件中提供的mime類型非常多,如果有確定項目中不會涉及到的類型,可以刪除其映射配置。

如果不需要展示tomcat的歡迎頁,可以將其刪掉。

下面是tomcat8.5版本提供的默認listener列表:

作用是在Tomcat初始化時,列印一下Tomcat相關的版本信息以及操作系統和jdk環境信息,可以刪掉。

Tomcat啟動時,檢查APR庫,如果存在則載入,這個配置僅當connector的protocol設置為AJP/1.3時有用,如果非AJP/1.3,可以刪除。

Java運行環境可能導致某些已知位置的內存泄漏或文件鎖定,
提供這些情況的解決方案。

作用於全局資源,通過該監聽器,初始化標簽中定義的全局JNDI資源;
如果沒有該監聽器,定義的全局資源都不能使用。
如果不使用GlobalNamingResources定義全局資源,可以刪除。

Web應用因thread-local導致的內存泄露而要停止時,該監聽器會觸發線程池中線程的更新。
只有當Web應用(即Context元素)的屬性設置為true時,該監聽器才有效。
官方文檔對配置的解釋為:

GlobalNamingResources可以定義全局資源,可以看出,這個tomcat的默認配置是通過讀取$TOMCAT_HOME/ conf/tomcat-users.xml實現的。
tomcat-user.xml用於定義tomcat管理頁面相關配置,如果不登錄管理界面可以刪掉。

官網中對於這個connector有如下描述:
The AJP Connector element represents a Connector component that communicates with a web connector via the AJP protocol. This is used for cases where you wish to invisibly integrate Tomcat into an existing (or new) Apache installation, and you want Apache to handle the static content contained in the web application, and/or utilize Apache's SSL processing.
可知當tomcat需要集成到Apache伺服器時才使用這個connector,現在一般都用Nginx代替Apache,所以不使用Apache的話這個也可以刪掉。

tomcat默認配置包含如下connector:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Realm,可以把它理解成「域」;
Realm提供了一種用戶密碼與web應用的映射關系,從而達到角色安全管理的作用,tomcat默認的這個realm是和name為UserDatabase的資源綁定的,而該資源在Server元素中使用GlobalNamingResources配置。如果不需要可以刪掉。

Valve的意思是「閥門」,不同的Valve有不同的特性,Valve的配置中AccessLogValve的作用是記錄其所在容器處理的所有請求,默認配置中的Valve放在Host下,便可以記錄該Host處理的所有請求。
AccessLogValve記錄的日誌就是訪問日誌,每天的請求會寫到一個日誌文件里。現在一般記錄Nginx訪問日誌,這個也可以刪除。

tomcat是用Java寫的,就要運行在jvm上,垃圾處理方式等都要遵循jvm的方式。
tomcat中設置jvm參數在 catalina.sh(Linux)和catalina.bat(windows)中,以JAVA_OPTS變數存儲。以catalina.sh為例:

可以在該變數中添加jvm參數,達到減少gc次數等目標,例如根據tomcat所在伺服器修改jvm內存大小等。

參數優化主要是優化sever.xml中的配置參數,示例server.xml如下:

port:指定一個埠,這個埠負責監聽關閉tomcat的請求。
shutdown:指定向埠發送的命令字元串。
sever配置沒什麼可優化的。

name:指定service的名字。
service配置沒什麼可優化的。

port:指定伺服器端要創建的埠號,並在這個埠監聽來自客戶端的請求
minProcessors:伺服器啟動時創建的處理請求的線程數
maxProcessors:最大可以創建的處理請求的線程數
enableLookups:如果為true,則可以通過調用request.getRemoteHost()進行DNS查詢來得到遠程客戶端的實際主機名,若為false則不進行DNS查詢,而是返回其ip地址
redirectPort:指定伺服器正在處理http請求時收到了一個SSL傳輸請求後重定向的埠號
acceptCount:指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理
maxConnections:達到這個值之後,將繼續接受連接,但是不處理,能繼續接受多少根據acceptCount的值
minSpareThreads:最小空閑線程數
connectionTimeout:指定超時的時間數(以毫秒為單位)
官網8.5版本connector使用連接類型如下:

查看Connector源碼:

可知默認協議使用的是Http11NioProtocol,即NIO方式。
tomcat默認連接池有限制,可以為connector配置自己的連接池,例如:

在連接池中可以根據項目自定義最大線程數量。

name:屬性用於日誌和錯誤信息,在整個Server中應該唯一
defaultHost:defaultHost屬性指定了默認的host名稱,當發往本機的請求指定的host名稱不存在時,一律使用defaultHost指定的host進行處理;因此defaultHost的值,必須與Engine中的一個Host組件的name屬性值匹配
沒什麼可優化的。

name:指定虛擬主機的主機名,一個Engine中有且僅有一個Host組件的name屬性與Engine組件的defaultHost屬性相匹配;
註:一般情況下,主機名需要是在DNS伺服器中注冊的網路名,但是Engine指定的defaultHost不需要

appBase:應用程序基本目錄,即存放應用程序的目錄

unpackWARs:指定了是否將war文件解壓,如果為true,則通過解壓後的目錄運行該Web應用;如果為false,則直接使用WAR文件運行Web應用

autoDeploy:是否自動部署,Tomcat運行期間會用一個線程定時檢查,如果有新的web工程會自動部署。
autoDeploy生產環境之下可以改成false,減少tomcat的負擔。
autoDeploy有需要注意的點,如果為true,拷貝war到webapp下面,tomcat自動解壓並部署。但是停掉tomcat拷貝新的war包過去,tomcat不會解壓新包並後覆蓋舊目錄,因為tomcat直接使用了之前解壓過的目錄。官網有描述:
If you redeploy an updated WAR file, be sure to delete the expanded directory when restarting Tomcat, so that the updated WAR file will be re-expanded (note that the auto deployer, if enabled, will automatically expand the updated WAR file once the previously expanded directory is removed).

docBase:代表應用程序或war文件存放的路徑,這個可以自由指定,例如d:/study

path:

表示此web應用程序的url的前綴,這樣請求的url為 http://localhost:8080/path/ **

reloadable:如果為true,則tomcat會自動檢測應用程序的/WEB-INF/lib和/WEB-INF/classes目錄的變化,自動裝載新的應用程序,可以在不重起tomcat的情況下改變應用程序

生產環境中可以把reloadable設置為false。

className:指定Realm使用的類名,此類必須實現org.apache.catalina.Realm介面
沒什麼可優化的

className:規定了Valve的類型;例如tomcat默認的是AccessLogValve。
directory:指定日誌存儲的位置,默認日誌存儲在 TOMCAT_HOME/logs目錄下,可以看到如下所示的日誌文件。
沒什麼可優化的。

Tomcat內存優化主要是對 tomcat 啟動參數優化,我們可以在 tomcat 的啟動腳本 catalina.sh 中設置 java_OPTS 參數。

現公司伺服器內存一般都可以加到最大2G ,所以可以採取以下配置:
JAVA_OPTS=』-Xms1024m -Xmx2048m -XX: PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m』

配置完成後可重啟Tomcat ,通過以下命令進行查看配置是否生效:
首先查看Tomcat 進程號:sudo lsof -i:9027

我們可以看到Tomcat 進程號是 12222 。
查看是否配置生效:sudo jmap – heap 12222
我們可以看到MaxHeapSize 等參數已經生效。

在Tomcat 配置文件 server.xml 中的
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
minProcessors="100"
maxProcessors="1000"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>

maxThreads 客戶請求最大線程數
minSpareThreads Tomcat初始化時創建的 socket 線程數
maxSpareThreads Tomcat連接器的最大空閑 socket 線程數
enableLookups 若設為true, 則支持域名解析,可把 ip 地址解析為主機名
redirectPort 在需要基於安全通道的場合,把客戶請求轉發到基於SSL 的 redirectPort 埠
acceptAccount 監聽埠隊列最大數,滿了之後客戶請求會被拒絕(不能小於maxSpareThreads )
connectionTimeout 連接超時
minProcessors 伺服器創建時的最小處理線程數
maxProcessors 伺服器同時最大處理線程數
URIEncoding URL統一編碼

compression 打開壓縮功能
compressionMinSize 啟用壓縮的輸出內容大小,這裡面默認為2KB
compressableMimeType 壓縮類型
connectionTimeout 定義建立客戶連接超時的時間. 如果為 -1, 表示不限制建立客戶連接的時間

⑩ 如何清理myeclipse自帶的tomcat的緩存

找到tomact的根目錄 清理目錄裡面Apache Software Foundation\Tomcat 6.0\work\Catalina這個文件夾中的localhost和webapps中的文件

work 目錄下是存放的tomcat緩存文件,所以只要刪除work下的相關文件就算清楚緩存。