1. 程式人生 > >專案WEB-INF下page資源為jsp和html測試總結

專案WEB-INF下page資源為jsp和html測試總結

WEB-INF是Java的WEB應用的安全目錄。所謂安全就是客戶端無法訪問,只有服務端可以訪問的目錄。如果想在頁面中直接訪問其中的檔案,必須通過web.xml檔案對要訪問的檔案進行相應對映(servlet-mapping)才能訪問。

WEB-INF介紹:https://baike.so.com/doc/1270031-1343005.html

WEB-INF下jsp檔案測試:

在$tomcat_home/conf/web.xml中會預設設定(下面的servlet-mapping)jsp的servlet-mapping配置;

  <servlet-mapping>

      <servlet-name>jsp</servlet-name>

      <url-pattern>*.jsp</url-pattern>

      <url-pattern>*.jspx</url-pattern>

  </servlet-mapping>

啟動tomcat後會先載入tomcat的web.xml檔案,所以當WEB-INF中的檔案為jsp後可以使用request.getRequestDispatcher("/WEB- INF/***.jsp").forward(request,response)直接訪問,不用在專案web.xml檔案中配置。如果是ssm專案,使用springMVC配置靜態資源對映和靜態資原始檔訪問這兩種方式後刪除tomcat的web.xml中jsp的servlet-mapping同樣可以訪問。如果不配置靜態資源對映訪問同時刪除tomcat的web.xml中jsp(servlet-mapping),在使用request.getRequestDispatcher("/WEB- INF/***.jsp").forward(request,response)就不能訪問到jsp頁面。

WEB-INF下html測試:

在tomcat下web.xml中jsp的servlet-mapping加入<url-pattern>*.html</url-pattern>,啟動tomcat同樣會載入到WEB-INF下的html檔案,但會出現亂碼。同jsp一樣,使用springMVC配置靜態資源也可以訪問到html,但不會亂碼。

注意:

  專案使用html頁面檔案後,無論在springMVC中配置靜態資源而不在專案的web.xml檔案中配置servlet載入html,還是springMVC和web.xml都配置時頁面載入css和js方式的方式都一樣,最好寫為相對路徑。

    假如SpringMVC中靜態資源對映配置為:

      <mvc:resources mapping="/statics/**"  location="/statics/ cache-period="31536000>

    html頁面引入css和js的路徑就為:

    ../statics/css/**.css 和 ../statics/js/css

這裡的js和css目錄是專案webapps/statics/下建立的目錄。