文章標題 JSP文件是否有必要放在WEB-INF下

觀點一:(較爲贊同)

安全性不是真正的原因,因爲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 目錄下更爲安全

發佈了305 篇原創文章 · 獲贊 11 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章