2011-12-04 357 views
0

我一直在開始做一些Java和JSP,現在,我卡住了。我不喜歡在根文件夾中擁有所有靜態HTML。如果我將它們打包到一個單獨的文件夾中。目前,我看到兩個選項:在web.xml中配置它,但只適用於servlet afaik。另一方面配置Tomcat可能是一個選擇,但它會破壞內部邏輯,即使它工作。JSP目錄結構

是否有正確的方式來組織文件,並沒有反映在URL?

+0

你想看到的靜態文件,而不是在哪裏?您可以創建子文件夾... WAR內的所有內容都將根據其上下文路徑進行提供。如果您對此不滿意,則需要在您的Web服務器(或Tomcat)上重寫規則。正確的方法*是爲靜態文件提供相對於WAR的上下文路徑,因爲它們屬於它。 – home

回答

0

映射jsp文件web.xml中的URL。

你可以把它們放在jsp/static /(subcontent)裏面的任何子文件夾下,或者根據你的文件的類型,你可以將它們分組得更遠。

現在的使用,因爲,因爲你是用普通的jsp和servlet是唯一的選擇,我認爲是有道理的,靜態的內容是,包括他們徘徊無論有需要包括指令,如:

<%@include file="/pages/static/abc.html" %> 

或將請求轉發將它們與

<jsp:forward page="/pages/static/staticdata.html" /> 

理解,這是一個痛苦,如果導航需要改變,你將不得不改變你的代碼,然後像Struts,JSF更先進的Web框架等有道理的,因爲導航規則改變版本y不需要更改代碼(除非流程導致模型更改或任何不同的場景)。

隨着導航規則這些框架還指定一個像Struts中的瓷磚,模板JSF頁面e.t.c建築結構

+0

嗨!我想到了Spring,但是因爲這是我的第一個項目,所以我希望沒有第一個抓地力。所以,你所說的是:如果我在一個文件夾/ staticPages /中有一個頁面somePage.html,那麼這個URL必須更改爲mainUrl/staticPages/somePage.html。沒有辦法配置它來讀取mainUrl/somePage.html? –

+0

當你包括使用include指令時,被包含頁面的內容被添加到了調用者頁面中,沒有url的變化,當你再次轉發url時沒有任何變化,用戶不會看到url的任何變化,只是說別人是做這個工作 – mprabhat

+0

所以,你在暗示什麼,沒有靜態頁面,並且用jsp做所有事情? –

0

當你談論靜態網頁像說的頁眉和頁腳,您可以實際使用

<jsp-file></jsp-file> tag 

<servlet> 
    <servlet-name>somName</servlet-name> 
    <jsp-file>newFolder/mypage.jsp</jsp-file> 
</servlet> 
<servlet-mapping> 
    <servlet-name>somName</servlet-name> 
    <url-pattern>/oldUrl.jsp</url-pattern> 
</servlet-mapping> 
+0

嗨!我知道,但是無論如何,這些都進入了類文件夾下的包。我想知道,如何組織靜態,主要是html文件8) –