Ⅰ 在java中怎麼訪問web-inf 目錄下的jsp頁面。
外部訪問來說,web-inf下的文件都是不可見的(即不能通過url獲得web-info下的任何文件),所以,直接訪問jsp是不可能的。可以使用view層框架(如struts)來提供jsp服務,將jsp文件放到web-info下避免客戶直接訪問到頁面,同時使用struts來進行jsp文件提取,並將編譯好的結果發送到客戶端。
WEB-INF是Java的WEB應用的安全目錄。所謂安全就是客戶端無法訪問,只有服務端可以訪問的目錄。如果想在頁面中直接訪問其中的文件,必須通過web.xml文件對要訪問的文件進行相應映射才能訪問。
(1)怎麼訪問webinf下的jsp擴展閱讀:
WEB-INF 目錄的作用:
/WEB-INF/web.xml
Web應用程序配置文件,描述了 servlet 和其他的應用組件配置及命名規則。
/WEB-INF/classes/
包含了站點所有用的 class 文件,包括 servlet class 和非servlet class,他們不能包含在 .jar文件中(是該目錄不能包含在.jar文件中)。
/WEB-INF/lib/
存放web應用需要的各種JAR文件,放置僅在這個應用中要求使用的jar文件,如資料庫驅動jar文件。
/WEB-INF/src/
源碼目錄,按照包名結構放置各個java文件。
/WEB-INF/database.properties
資料庫配置文件
/WEB-INF/tags/
存放了自定義標簽文件,該目錄並不一定為 tags,可以根據自己的喜好和習慣為自己的標簽文件庫命名,當使用自定義的標簽文件庫名稱時,在使用標簽文件時就必須聲明正確的標簽文件庫路徑。
例如:當自定義標簽文件庫名稱為 simpleTags 時,在使用 simpleTags 目錄下的標簽文件時,就必須在 jsp 文件頭聲明為:<%@ taglibprefix="tags" tagdir="/WEB-INF /simpleTags" % >。
/WEB-INF/jsp/
jsp 1.2 以下版本的文件存放位置。改目錄沒有特定的聲明,同樣,可以根據自己的喜好與習慣來命名。此目錄主要存放的是 jsp 1.2 以下版本的文件,為區分 jsp 2.0 文件,通常使用 jsp 命名,當然你也可以命名為 jspOldEdition 。
/WEB-INF/jsp2/
與 jsp 文件目錄相比,該目錄下主要存放 Jsp 2.0 以下版本的文件,當然,它也是可以任意命名的,同樣為區別 Jsp 1.2以下版本的文件目錄,通常才命名為 jsp2。
META-INF
相當於一個信息包,目錄中的文件和目錄獲得Java 2平台的認可與解釋,用來配置應用程序、擴展程序、類載入器和服務
manifest.mf文件,在用jar打包時自動生成。
Ⅱ jsp頁面放在web-inf目錄下怎麼訪問
首先,對於外部訪問來說,web-inf下的文件都是不可見的(即不能通過url獲得web-info下的任何文件),所以,直接訪問jsp是不可能的。這要從web-info文件夾的作用說起:
WEB-INF的存在以及其下的lib和classes目錄的作用都是jsp規定的,主要是系統運行的配置信息和環境,用來存儲服務端配置文件信息和在服務端運行的類文件,它下面的東西不允許客戶端直接訪問的,這是jsp環境的規定。
而我們通常是使用view層框架(如struts)來提供jsp服務,此時,我們可以將jsp文件放到web-info下避免客戶直接訪問到頁面,同時使用struts來進行jsp文件提取,並將編譯好的結果發送到客戶端。
Ⅲ 如何直接訪問web-inf下的index.jsp
WEB-INF目錄下的jsp文件,在瀏覽器中是不能直接訪問的。(沒有訪問的許可權)
如果將jsp文件放入WEB-INF目錄下,將不能訪問。
比如在jsp頁面中直接寫
[html] view plain
<span style="font-size:18px;"><a href="/WEB-INF/content/index.jsp"></span>
那麼將不能訪問。
在struts中必須用action來實現頁面的跳轉,才能訪問WEB-INF裡面的jsp文件。
將上面的jsp頁面中的鏈接寫為:
[html] view plain
<span style="font-size:18px;"><a href=index.action>
</span>
Ⅳ 關於WEB-INF下的jsp,使用絕對路徑如何訪問
WEB-INF下的東西是禁止直接訪問的。如果這個頁面是你的,要想讓人訪問最好不要放在這個目錄下。如果一定放在那裡。你可以使用:
request.getRequestDispatcher("/WEB-INF/test.jsp").forward(request,response);
所以你想直接添加一個鏈接那肯定是沒發過去的。你可以先跳到一個jsp,那個jsp里寫上上面的代碼就可以了。