許多開發者習慣稱 work 目錄為「快取」,實則不準確。work 是 JSP 編譯工作目錄,存放 JSP 轉換生成的 .java 與 .class 檔案。本文揭示其真實運作機制、定時掃描策略與大檔案限制。
index.jspwork/Catalina/localhost//org/apache/jsp/ 生成 index_jsp.javajavac 編譯為 index_jsp.class_jspService() 響應.java → 重新編譯 .class → 重新載入。實務技巧: 修改 JSP 後手動清空
work目錄可強制立即重新編譯,但生產環境慎用(會導致當前用戶 Session 中斷、類卸載風險)。
_jspService() 包含所有模板文字與邏輯,極易超限。work/
└── Catalina/
└── localhost/
└── myapp/
└── org/
└── apache/
└── jsp/
├── index_jsp.java
├── index_jsp.class
└── ...
| 誤區 | 事實 |
|---|---|
| work 是快取目錄 | work 是 JSP 編譯產物輸出目錄(工作目錄) |
| 可隨意刪除 work 加速 | 刪除會觸發全量 JSP 重編譯,短期內增加 CPU/IO 壓力 |
| work 內容可手動修改 | 屬編譯產物,下次掃描會被覆蓋,修改無效 |
理解 work 真實角色,能避免誤操作導致的服務抖動與除錯誤導。