首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java Web 專案目錄結構:webapp 與 WEB-INF 的關係與資源放置建議

     編輯:程式設計綜合問答

標準目錄結構

mywebapp/              <-- webapp (Context Root)
├── index.jsp
├── css/
├── js/
├── images/
└── WEB-INF/           <-- 受保護目錄
    ├── web.xml
    ├── classes/
    ├── lib/
    ├── jsp/           <-- 可選:放置不想直接訪問的 JSP
    └── ...

關鍵差異

位置直接 URL 訪問適用資源
webapp/ (根目錄)是靜態資源:HTML、CSS、JS、圖片、字體
WEB-INF/否(容器拒絕)類檔、JAR、配置、敏感 JSP、模板

最佳實踐建議

  1. 靜態資源放 webapp:瀏覽器直接快取、CDN 加速,效能最佳。
  2. 業務 JSP 放 WEB-INF/jsp:防止用戶繞過 Controller 直接訪問,強制走 MVC 流程。
  3. Spring MVC ViewResolver 配置:
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
    Controller 回傳邏輯視圖名(如 "user/list"),自動映射至 /WEB-INF/jsp/user/list.jsp。

常見誤區

  • 「所有 JSP 都放 WEB-INF」——錯誤。歡迎頁、錯誤頁、靜態內容頁可放根目錄。
  • 「CSS/JS 放 WEB-INF 更安全」——錯誤。導致瀏覽器無法直接載入,需 Controller 轉發,增加伺服器負擔且失去快取優勢。

總結

webapp 是公開資源根目錄,WEB-INF 是受容器保護的私有目錄。善用兩者分工,兼顧安全與效能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved