1.0          Other languages
 
 

2.3 HTML 檔案目錄結構

 
 

VelocityWeb 使用 HTML 檔案替代 JSP 作為展現層。HTML 檔案可以被放在 WebContent 目錄下,然後在部署到應用伺服器之前,打包到 EAR 檔案里;或者,放在部署檔案外面,這樣部署後也可以改變這些檔案。

一些新聞網站,或者論壇網站,需要經常改變網頁外觀,每周,或者每月。把 HTML 檔案放在部署檔案外面,可以較好地應付這種需求。

一般情況下,我們把 HTML 檔案放在部署檔案里面:

├─src
︱  └─org
︱
└─WebContent
    ├─html
    ︱  ├─css
    ︱  ├─images
    ︱  ├─js
    ︱  └─pages
    ︱      ├─cart
    ︱      ├─layout
    ︱      ├─order
    ︱      ├─product
    ︱      ├─system
    ︱      └─user
    ├─META-INF
    └─WEB-INF
        └─lib

推薦的方法,是將所有 HTML 檔案,相對于 HTML 根目錄,放在同樣的目錄層次中。以下是一個不好的例子︰

︱
└─WebContent
    ├─html
    ︱  └─pages
    ︱      ├─cart
    ︱      ︱      ├─view_cart.htm
    ︱      ︱
    ︱      ├─product
    ︱      ︱      ├─new_product
    ︱      ︱      ︱      ├─save_product.htm
	

在上面的例子中,view_cart.htm 和 save_product.htm 中的 CSS 或者圖片檔案的相對路徑並不相同。但是,在應用執行時後,VelocityWeb 只有一個控制器,它將所有網頁現在在同一個網頁伺服器目錄下。

在 view_cart.htm 中,可能包含這樣的 CSS 連結︰

<link href="../../css/style.css" rel="stylesheet" type="text/css">

預設情況下,控制器 servlet 會被配置到 WebContent 下 HTML 檔案同樣的目錄層次。為了讓 CSS 生效,需要在 web.xml 中將 servlet 配置到另一個 URL 路徑︰

   <servlet-mapping>
<servlet-name>ControllerServlet</servlet-name>
<url-pattern>
/html/control/servlet/ControllerServlet
</url-pattern>
</servlet-mapping>

現在,URL

../../css/style.css

會成為

html/css/style.css

這樣 CSS 就可以生效了。