你的Web應用根目錄/
├─ index.jsp, *.html, *.css, *.js, images/ ... (公開資源)
└─ WEB-INF/ (受容器保護,瀏覽器無法直接訪問)
├─ web.xml (部署描述符:Servlet映射、過濾器、監聽器、參數等)
├─ classes/ (編譯後的 .class 檔案,含 Servlet、Bean、工具類)
│ └─ com/yourpkg/YourClass.class (完整包結構)
└─ lib/ (第三方 JAR 檔:JDBC驅動、框架庫、工具庫等)
├─ ojdbc6.jar
├─ spring-core.jar
└─ ...
| 目錄/檔案 | 用途 | 注意事項 |
|---|---|---|
web.xml | Web 應用部署描述符,定義 Servlet、Filter、Listener、Welcome-file、錯誤頁、安全限制等 | 必須置於 WEB-INF 根目錄,檔名固定 |
classes/ | 存放應用自有編譯類別;若屬套件,需保留完整目錄層級 | 類別載入器優先載入此目錄 |
lib/ | 存放應用依賴的 JAR 檔(如 JDBC 驅動、ORM 框架、JSON 庫等) | 容器啟動時自動掃描載入 |
極簡專案可僅於根目錄放置 JSP/HTML,無需 WEB-INF,但一旦涉及 Servlet、資料庫連線、框架整合,務必遵循標準結構,確保可攜性與安全性。
.class 直接丟在 WEB-INF 根目錄,未建包目錄 → ClassNotFoundException。classes/ 而非 lib/ → 不會被載入。