為什麼在maven建立的專案中不能使用靜態資源???
阿新 • • 發佈:2021-01-03
為什麼在maven建立的專案中不能使用靜態資源??? 靜態資源的訪問:html\css\js\圖片資源等 (注意:jsp不是靜態資源) 因為訪問靜態資源要訪問全域性web.xml中的DefaultServlet, 對映路徑為/,和前端控制器衝突了,而且區域性優先,前端控制器沒問題,但是靜態資源就訪問不到了 解決方案1:將web.xml中前端控制器的影射路徑改成*.action,訪問handler時都帶上.action(我們不動全域性檔案) <url-pattern>/</url-pattern>改成 <url-pattern>*.action</url-pattern> 缺點:每個都要加.action如 @RequestMapping("/show")-->@RequestMapping("/show.action") 解決方案2: mvc.xml中加一句: <mvc:default-servlet-handler></mvc:default-servlet-handler> <!-- 靜態資源訪問--> <!-- 在後端controller中生成一個handler,該handler用於解決靜態資源訪問 訪問優先順序最低,其他路徑都訪問不到的時候就訪問/**--> 相當於: UerController.java中加上了:(用於處理靜態資源) @RequestMapping("/**") public String resouce(){ //處理靜態資源 return null; } 全域性web.xml: <servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param><init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list>