不要再糾結css/js/html有沒有必要放在WEB-INF下了

原因

首先,css/js/html沒有必要放在WEB-INF下。
最終這些會被原封不動的展現在客戶端,所以訪問安全根本就不會成爲問題。
jsp放在web-inf下,原因主要有兩個
1. 遠古時代的模式會把業務邏輯,數據庫連接等敏感信息寫在jsp裏面,被用戶直接訪問會有安全問題。
現代模式裏這個不再成爲問題,不應該成爲問題。
2. jsp是在服務器端運行的,而且通常都需要其他程序支持——比如後臺處理好數據再讓jsp渲染等,用戶直接訪問一則沒有意義,二則會拋異常,這些都浪費服務器資源。

其次,如果你一定要放在web-inf下。
需要弄個servlet來forward,或者讀取文件後寫在response上。
如果是spring,可以參考
http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html
中的 17.15.6 Configuring Serving of Resources

附代碼

    <mvc:resources location="/WEB-INF/js/" mapping="/js/**"/>
    <mvc:resources location="/WEB-INF/img/" mapping="/img/**"/>
    <mvc:resources location="/WEB-INF/css/" mapping="/css/**"/>

在web.xml中配置靜態資源是不管作用的。

<servlet-mapping>     
    <servlet-mapping>     
        <servlet-name>default</servlet-name>  
        <url-pattern>*.jpg</url-pattern>  
        <url-pattern>*.png</url-pattern>
        <url-pattern>*.css</url-pattern>
        <url-pattern>*.js</url-pattern>          
    </servlet-mapping>        
發佈了16 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章