問題
在SSM架構下,如果web.xml配置檔案如下:
<servlet-mapping>
<servlet-name>spring-Servlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
其中“/”會導緻靜态檔案(jpg,js,css)被攔截後不能正常顯示(其他目錄下的檔案也同樣通路不到)。
解決方法
1:在spring-mvc.xml中啟用預設Servlet
<mvc:default-servlet-handler/>
在web.xml中增加對靜态資源的處理
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
<url-pattern>*.css</url-pattern>
<url-pattern>/assets/*"</url-pattern>
<url-pattern>/images/*</url-pattern>
</servlet-mapping>
特點:使用預設的Servlet進行資源檔案的通路,Spring攔截所有請求,然後再将資源檔案交由預設的Sevlet進行處理,性能上少有損耗
2:修改web.xml
修改前
<url-pattern>/</url-pattern>
修改後
<url-pattern>*.do</url-pattern>
特點:Spring隻是處理以’.do’結尾的通路,性能上更加高效,但是再通路路徑上必須都以’.do’結尾,URL不太文雅