jsp文件放在WebRoot下還是WebInfo下


觀點一:(較為贊同)

安全性不是真正的原因,因為jsp是要解析后才顯示到瀏覽器的,即使用戶知道你jsp的路徑,也不可能通過瀏覽器看到jsp源碼的,而如果是通過其它手段入侵服務器的話,放在WEB-INF又和放在別的地方有什么區別呢???
真正的原因是,對於早期直接嵌入java代碼的jsp,是直接給出jsp路徑給用戶訪問的,這種情況恰恰不能放在WEB-INF,而到了現在的mvc模 式,jsp已經不是曾經那個包含完整邏輯的jsp,而僅僅充當view層的模板,必須要填入model數據后進行渲染,才能生成可讀的頁面,這樣的模板是 不能讓用戶直接訪問的,直接訪問的話要么是一堆各種空白,或者一堆占位符,甚至一堆NullPointException,所以需要放到WEB-INF 里。補充一下,“安全性問題”指的是“不允許你訪問,否則會對我不好”,而這里的情況其實是“不建議你訪問,否則會對你不好”,應該屬於健壯性的范疇。

觀點二:

放到WEB-INF下的Jsp文件,如果你直接去訪問這個Jsp是不可以的,必須通過Action的跳轉,這樣就能夠理解為什么安全性高了,對 於用戶是不可見的,對於一些對於用戶,可以直接訪問的,如,登錄,注冊頁面,可以直接放在webroot下,這個也是根據你系統的需求了。

觀點三:

通過設置過濾器,放在webroot下面的文件也可以實現不能直接訪問。所以說放在哪里就看習慣是什么樣了。
一般項目都是要求隱藏性的,只讓客戶通過請求訪問而不是直接訪問jsp頁面。若放在webroot下面,肯定要加一個過濾器阻止所有對*.jsp的訪問。只要比較的話:
放在webroot下面:優點,程序結構清晰,便於編碼和維護;缺點,要加過濾器。
放在web-inf下面:優點,不用過濾器;缺點,打亂了程序結構,編碼和維護麻煩

觀點四:

為了減少風險,可以把這些頁面文件移到WEB-INF
目錄下。基於Servlet的聲明,WEB-INF不作為Web應用的公共文檔樹的一部分。因此,WEB-INF 目錄下的資源不是為客戶直接服務的。我們仍然可以使用WEB-INF目錄下的JSP頁面來提供視圖給客戶,客戶卻不能直接請求訪問JSP。JSP存放在 WEB-INF 目錄下更為安全。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM