web專案訪問jsp的方式及頁面間的跳轉
在J2EE中其主要安全性就體現在web工作目錄的WEB-INF資料夾下。
一般為啥要把jsp頁面放在WEB-INF吶?這樣主要是為了網站的安全的角度來說的,WEB-INF是安全目錄Tomcat 預設的訪問路徑是WebRoot下的index.jsp[體現在下圖,它是按順序匹配的],放在WEB-INF下的頁面一般不配置是無法訪問的。
因此如果將一個頁面放在WEB-INF資料夾下,那麼該頁面的安全性將得到提高...
但有時候當我們需要訪問該頁面時,卻無法訪問,那麼如何能夠訪問WEB-INF資料夾下的頁面呢?
此為專案目錄:
可以直接將想要訪問的jsp寫在WebContent下,以專案名為url進行訪問
或者在web.xml中做一下配置
<welcome-file-list>
<welcome-file>/WEB-INF/one.jsp</welcome-file>
</welcome-file-list>
接下來以<a>標籤講解一下jsp之間的跳轉,重點是要跳轉到WEB-INF下的jsp
通常這個時候我們會試下相對地址/b.jsp、絕對地址/WEB-INF/b.jsp以及${pageContext.request.contextPath}/WEB-INF/b.jsp,但無論怎麼搞都不行,這個時候就比較崩潰。
但是還是可以通過servlet來完成任務了。
首先在web.xml裡面配置servlet和servlet mapping
<servlet>
<servlet-name>goto</servlet-name>
<jsp-file>/WEB-INF/jsp/test.jsp</jsp-file>--要跳轉到的頁面
</servlet>
<servlet-mapping>
<servlet-name>goto</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
配置好了之後在jsp頁面裡用a就可以跳轉了<a href="/工程名/test">測試頁面跳轉</a>
這裡一定要“/工程名/test”
通過servlet跳轉還是比較麻煩了,但是這樣能保證JSP頁面的安全性,想兩全其美是比較難的了。
當然如果安全要求不高,那就可以做成很簡單的了,直接把所有的jsp頁面全部放在webRoot底下,在WebRoot下頁面使用者可以直接輸入地址訪問。