1. 程式人生 > >Tomcat下的work資料夾

Tomcat下的work資料夾

1、用tomcat作web伺服器的時候,部署的程式在webApps下,這些程式都是編譯後的程式(釋出到tomcat的專案裡含的類,會被編譯成.class後才釋出過來,原始檔沒有釋出過來,但這裡的jsp沒有經編譯的)。tomcat有一個work目錄,裡面存放了頁面的快取,訪問的jsp都會編譯(從 work裡進入Catalina後的如localhost站點資料夾下的專案,我們可以看到那些jsp頁面會被編譯成應該是servlet檔案,下次再來 訪問時,就直接執行servlet類就可以向客戶端反應響應頁面了,所以有的部落格說第一次訪問時會比較慢,是因為新發布上去的頁面在第一個人訪問時,會先 編譯成servlet檔案,所以慢了,一旦編譯好,那麼除非jsp頁面修改,不然下次訪問直接執行servlet就可以響應使用者,所以快

),編譯後的檔案都會儲存在work目錄下。而tomcat顯示的目錄,都會從這個快取裡找編譯後的jsp對應的class檔案。所以當清空了work目錄後,該過程將會從新來過。

有的時候會遇到一個問題,就是修改後的頁面在tomcat執行的時候顯示不了修改後的痕跡。這個時候刪除work目錄下對應的專案資料夾,重新啟動tomcat就可以了。

2、在tomcat的conf配置資料夾下的server.xml檔案裡配置了Host name後,就會在conf下的Catalina資料夾和work下的Catalina檔案下建立站點名稱的資料夾,專案每次釋出都會放入來,也會記錄到 conf下的Catalina資料夾的配置檔案裡去。

最近發現,很多網友喜歡把tomcat的work目錄裡的東西叫做快取,其實那不是很恰當,work目錄只是tomcat的工作目錄,也就是tomcat把jsp轉換為class檔案的工作目錄,這也正是為什麼它叫work目錄而不是cache目錄的原因。
  jsp,tomcat的工作原理是當瀏覽器訪問某個jsp頁面時,tomcat會在work目錄裡把這個jsp頁面轉換成.Java檔案,比如將index.jsp轉換為index_jsp.java檔案,而後編譯為index_jsp.class檔案,最後tomcat容器通過ClassLoader類把這個index_jsp.class類裝載入記憶體,進行響應客戶端的工作。

  tomcat會定時稍描容器內的jsp檔案,讀取每個檔案的屬性,當發現某個jsp檔案發生改變時(檔案的最後修改時間與上次稍描時不相同時),tomcat會重新轉換、編譯這個jsp檔案。但是tomcat的稍描是定時的不是實時的,這也正是為什麼jsp檔案修改後需要幾分鐘的時間來等修改過的jsp生效。當然為了即刻生效,很多老前輩都會建議在修改jsp頁面後立即清除work目錄裡的檔案。

  另外,tomcat容器中,對轉換後的java檔案(比如:index_jsp.java)的編譯最大隻支援64k,所以在其他容器中的jsp移植到tomcat容器中時會遇到大jsp檔案會發生無法編譯的情況,所以建議把jsp中的業務邏輯寫入單獨的類,在jsp中通過呼叫這個類的靜態方法來執行,並將jsp頁面中的js提取出來放到單獨的js檔案內。

問題域:
如何讓Tomcat自動更新class的問題。
解決方案:
一、
在安裝的tomcat路徑下建立獨立配置檔案。
例如:
建立一檔案:D:\Tomcat5.5\conf\Catalina\localhost\testapp.xml

內容為:

重啟Tomcat

二、
直接在tomcat 的配置檔案conf/server.xml中新增內容如下:


注意是在標籤下新增;
重啟Tomcat

相關推薦

Tomcatwork資料

1、用tomcat作web伺服器的時候,部署的程式在webApps下,這些程式都是編譯後的程式(釋出到tomcat的專案裡含的類,會被編譯成.class後才釋出過來,原始檔沒有釋出過來,但這裡的jsp沒有經編譯的)。tomcat有一個work目錄,裡面存放了頁面

tomcat問題,jsp頁面無法編譯,web頁面一片空白,log顯示空指標,在tomacat的work資料沒有生成相應的Java檔案

主要是  3個錯誤:1.  !ENTRY org.eclipse.ui 4 0 2013-08-06 20:41:20.643 2.  !ENTRY org.eclipse.jst.jsp.core 4 4 2013-08-09 16:54:04.4903. !ENTRY

tomcat目錄各個資料的作用

1、開啟tomcat安裝目錄 bin目錄存放的是存放可執行程式的目錄 其次往下看common資料夾,這個是做什麼用的呢,common資料夾是存放公共jar包的 再看conf資料夾,這個是做什麼用的

Linux| Linux資料的結構說明及用途介紹

linux下各資料夾的結構說明及用途介紹: /bin:二進位制可執行命令。 /dev:裝置特殊檔案。 /etc:系統管理和配置檔案。 /etc/rc.d:啟動的配 置檔案和指令碼。 /home:使用者主目錄的基點,比如使用者user的主目錄就是/home/user,可以用~u

獲取指定目錄資料(包含檔案)並且拷貝到另一指定資料,刪除指定目錄資料(包含檔案)

    /**      * 複製整個資料夾內容      *       * @param oldPath      *  

【轉載】Linux資料的含義和用途 Linux資料的含義和用途

原文地址:https://www.cnblogs.com/lanqingzhou/p/8037269.html Linux下各資料夾的含義和用途 Linux根目錄”/“下各個系統資料夾的含義和用途 1、/boot 該目錄預設下存放的是Linux的啟動檔案和核心。 2、/initrd 它的英文

Linux資料編寫Makefile詳解

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Windows2008共享資料的使用

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

linux檢視根目錄所有資料大小

linux檢視根目錄下所有資料夾大小的方法如下: 1、進入根目錄:cd / 2、使用命令 : du -sh * 檢視根目錄下每個資料夾的大小 3、進入佔用空間比較大的資料夾,然後再使用2中命令查詢大檔案。   查詢大於10M的檔案 find / -type f -size +

unity editor模式讀取資料資源

string path = EditorUtility.OpenFolderPanel("Load png Textures", "", "");  //開啟資料夾 string[] files = Directory.GetFiles(path);  //獲取所有檔案路徑 Object[] os = ne

Linux 根路徑資料用途(centos)

/bin: 包含了引導啟動所需的命令或普通使用者可能用的命令(可能在引導啟動後)。這些命令都是二進位制檔案的可執行程式,多是系統中重要的系統檔案。 /boot: 包含可引導的Linux核心和引導裝載(boot loader)配置檔案(GRUB)。 /dev: 包含代表系統

android建立資料和修改其許可權的方法

    /**     * File creation mode: the default mode, where the created file can only     * be accessed by the calling application (or all applications shari

Linux統計資料數量

1) 統計當前資料夾下檔案的個數: ls -l |grep "^-"|wc -l 2) 統計當前資料夾下目錄的個數: ls -l |grep "^d"|wc -l 3) 統計當前資料夾下檔案的個數,包括子資料夾裡的 : ls -lR|grep "^-"|wc

centos6.5修改資料許可權和使用者名稱使用者組

0.說明 Linux系統下經常遇到檔案或者資料夾的許可權問題,或者是因為資料夾所屬的使用者問題而沒有訪問的許可權。根據我自己遇到的情況,對這類問題做一個小結。在命令列使用命令“ll”或者“ls -a”,可以檢視檔案或者檔案的許可權: -rw-r--r--. 1 root root 6 Nov 9 16:

去掉ubuntuwindows資料綠色背景

在ubuntu下開啟Windows資料夾,有綠色背景。原因是那些資料夾的讀寫執行訪問許可權引起的。在 Ubuntu中,不同許可權的檔案/資料夾 有不同的顏色。本文先講方法,方法很簡單,兩步就完成。有興趣的可以看後面的原理,以便你修改成你想要的其他顏色。 步驟:

Win7作業系統解決“資料總在新視窗開啟”的問題

前言 上一篇寫了vps配置相關的東西,被扔到回收站去了,心裡比較生氣。恰好工作的電腦又出了這個問題,真是讓人頭疼。解決方法記錄到這裡,以防忘記。 參考 第一次解決 第一次出現的時候搜了一些問題定位,大致是說由IE引起的這個問題,我的工作電腦上IE打不開了(雙擊

Tomcat的webapps資料

tomcat預設訪問的是root目錄,我的root目錄裡已經刪光了,直接輸ip進root目錄 如果你想要訪問 ,像docs,等同等級目錄 ,直接在後面加/docs 你可以把web專案打成.war包,放在webapps資料夾下,啟動tomcat時會自動解

Ubuntu根目錄資料的功能詳細介紹

Ubuntu的根目錄下存在著很多的資料夾,但你知道他們都存放著哪些檔案呢?這些是深入瞭解Ubuntu系統必不缺少的知識,本文就關於此做一下介紹吧。     /bin/    用以儲存二進位制可執行命令檔案。     /sbin/    許多系統命令的儲存位置,/usr/s

Linux資料的含義和用途

Linux根目錄”/“下各個系統資料夾的含義和用途 1、/boot 該目錄預設下存放的是Linux的啟動檔案和核心。 2、/initrd 它的英文含義是boot loader initialized RAM disk,就是由boot loader初始化的記憶體盤。在lin

Qt5 實現檔案複製並在指定路徑建立資料

最近在基於qt5平臺的應用介面上想實現本地選擇檔案,並把檔案拷貝到指定路徑下。找到以下這篇文章參考,參考其中幾個函式的寫法實現了想要的功能,故記錄一下,方便以後查詢參考。 我在標頭檔案中定義幾個變數:        QFileDialog    *mFil