導航:首頁 > 文件教程 > tomcat編譯後的文件

tomcat編譯後的文件

發布時間:2023-02-08 10:26:50

① tomcat\work\下Catalina是干什麼用的

Tomcat Catalina下的文件
是tomcat編譯你的項目後,產生的文件,
也就是你的項目的class文件(如果不是java文件,則直接復制,比如jsp等)
也就是說,你把項目的原文件放入webapps,當tomcat啟動的時候,就會把
這個文件夾下的項目,進行編譯,然後存放到Catalina目錄下,
當別人訪問的時候,就是訪問這里的文件
當用戶第一次訪問一個jsp頁面時才會把webapps下的相應頁面放到Catalina下作為緩存回復

Catalina下有一個localhost文件夾,主要是tomcat把jsp生成的servlet置於此目錄下。裡面的文件夾名字都是你的工程的名字。
————————————————
原文鏈接: https://blog.csdn.net/u012665434/article/details/84831100

② tomcat,myeclipse編譯後java的.class文件會在哪個目錄下存放

tomcat下webapps下你的項目名稱下,web-inf下的classes文件夾裡面
jsp編譯成的java文件在tomcat文件下的,work下Catalina下什麼什麼的,一看就知道的

③ tomcat編譯的jsp文件在哪兒

jsp只有用戶訪問的時候,服務端也就是tomcat才對jsp進行編譯變成html返回給瀏覽器。
所有你在版tomcat下是找不到編譯完成的權hhtml頁面,但是你可以用瀏覽器打開你的jsp頁面,然後右鍵選擇查看源代碼就能看到編譯之後的html代碼。

④ 什麼是Tomcat的緩存文件

Tomcat的緩存文件就是指JSP文件編譯後的class和java文件。
虛擬機無法直接執行JSP文件,首先需要把.jsp編譯為.java,然後再編譯為.class。這個過程是應用伺服器自動完成的,不需要人工干預。tomcat用於存放這些文件的地方就是work目錄。有時你修改了jsp文件但頁面沒有任何變化,有可能是jsp文件雖然更改但tomcat沒有及時編譯。這是只需要清掉work目錄中的相應內容,tomcat發現對應的.class沒有了,就會從新編譯。

⑤ tomcat編譯jsp之後生成的Servlet書上說放在tomcat7\work\Catalina\localhost文件里,可是我找不到

你的tomcat是不是配置在來Eclipse的server中了?如源果是的話,在Eclipse中運行tomcat後,工程的的jsp文件被編譯成servlet文件後,不是放在tomcat中,而是放在Eclipse的workspace目錄的.metadata目錄下,你可以進入這個目錄,然後搜索文件,搜索關鍵字填寫「*_jsp.java」,然後搜索。
我的工程中的JSP文件被編譯後就放在workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\路徑下。希望對你有幫助。

⑥ 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, 表示不限制建立客戶連接的時間

閱讀全文

與tomcat編譯後的文件相關的資料

熱點內容
xp文件夾打不開 瀏覽:735
濰坊百老匯電影院今日影訊 瀏覽:310
吳家麗的電影蛇 瀏覽:130
日本電視劇電影網站 瀏覽:968
資源最多的電影網 瀏覽:951
大話西遊1111版本 瀏覽:803
hadoop文件存儲格式 瀏覽:93
秘密孫藝珍扮演誰 瀏覽:895
公司如何建立文件上傳下載 瀏覽:329
好看的泰國男男電影 瀏覽:252
如何封網路 瀏覽:138
機戰坦克升級 瀏覽:614
韓國消失的眼角膜在哪能看 瀏覽:689
華為微雲下載的文件路徑手機 瀏覽:518
ps中選擇工具的快捷鍵 瀏覽:518
去電影院看電影坐腿上 瀏覽:624
隴南鄉村大數據公眾號 瀏覽:870
泰國《永恆》未刪減233 瀏覽:143
如何找到vivo手機收藏的文件 瀏覽:926

友情鏈接