web 專案無法訪問html,但是可以訪問jsp
阿新 • • 發佈:2019-02-09
問題簡述:可以訪問以.jsp為字尾的頁面,不能訪問.html為字尾的頁面
檢查web.xml中的【url-pattern】的設定
<servlet> <servlet-name>spring-mvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 指定路徑 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <!-- 隨spring啟動而啟動 --> <load-on-startup>1</load-on-startup> </servlet> <!-- Servlet Mapping --> <servlet-mapping> <servlet-name>spring-mvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
原因:【/】:它會攔截所有的url,如:/test,/test1.html,/1.jpg……,但是除了以jsp結尾的url不會交給前端控制器。所以導致了不能訪問html檔案。對於*.jsp,由於servlet容器中內建了jspServlet,所以不會被/
攔截
解決方法:
在上述程式碼前插入以下程式碼,那麼符合相應的【url-pattern】規則的訪問,就會由預設servlet處理。
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.png</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.gif</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping>