2009-11-20 26 views
0

我開發了一個java 1.4 web應用程序。應用程序部署在jboss(tomcat)上。java:如何隱藏靜態資源,如html,用戶在jboss platfrom上的圖像?

想我的文件夾結構

mainfolder(contains subfolders and jsp pages) 
     images(contains all of images files) 
     headerfiles(header files) 
     javascript(javascript files) 

網址的網站登錄頁面

 mywebsite.com/mainfolder/login.jsp 

,如果用戶鍵入一些靜態資源

 mywebsite.com/mainfolder/images/myimage.jpeg 

那麼他就可以查看圖像完整的URL在這個網址上。

我想停止用戶查看這些資源。我該怎麼辦?

有沒有辦法來specigy模式的文件名,我不希望用戶看到的模式。 在這種情況下,我可以指定* .ssi模式來隱藏。

回答

4

如果這些圖像在您的網頁中使用,用戶將必須能夠下載它們以查看它們。

這是基本的HTTP。如果你想下載資源,你需要訪問它。

防止用戶訪問mywebsite.com/mainfolder/images/myimage.jpeg將意味着您將無法在HTML或CSS中使用此圖像。

如果這些文件不應該對用戶可用,而只對服務器可用,請勿將它們保留在未發佈的文件夾中以進行發佈。

+0

可以請你告訴我如何將這些文件保留在未發佈的文件夾中。非發佈和已發佈文件夾之間的區別是什麼? 謝謝 – 2009-11-20 08:39:59

+0

已發佈的資源可通過Web服務器訪問,非發佈的資源則不可訪問。 – 2009-11-20 09:06:09

+0

如何製作非發佈的文件夾?可以請你參考一些鏈接的細節?我可以找到一個。 – 2009-11-20 10:07:36

1

瀏覽器無法直接訪問webapp的WEB-INF目錄下的任何東西。

+0

如果我把所有的文件夾包含圖像,JavaScript等?我將不得不改變引用這些資源,這是在數千。 像javascript的情況下 引用是相對於主文件夾指定的。但現在JavaScript文件夾不再存在於mainfolder.So我應該在哪裏做change.contextroot我的應用程序是「/」。 謝謝 – 2009-11-20 11:24:10

+1

如果你把東西放在'WEB-INF'下,那麼瀏覽器就看不到它們。這就是你要求的。您希望瀏覽器查看這些資源,或者您不需要。 – skaffman 2009-11-20 11:33:42

+0

我不希望用戶直接看到這些資源。但jsp頁面應該引用這些資源。否則我對這些資源沒有任何用處。 – 2009-11-20 11:37:36

0

我想停止用戶查看這些資源。我該怎麼辦?

說實話,這沒有什麼意義。客戶如何能夠獲得靜態數據?您可以將這些文件放在/WEB-INF(非發佈的文件夾)中,以避免直接訪問它們,但是不能在JSP頁面中使用它們,因爲客戶端無法再直接訪問它們。

我認爲這裏最大的錯誤是你沒有意識到每個圖像,CSS文件,JS文件等都將它們視爲完全獨立的HTTP請求。整個網站被一個HTTP請求拖拽是不正確的。

相關問題