搭建springMVC專案,web.xml配置,及分析。
阿新 • • 發佈:2019-01-25
突發奇想,根據所學,自己搭建springMVC專案,然後逐漸新增其他框架,構建一個後臺管理系統。
也算是鞏固以前學的基礎了。
至於用了哪些jar包,沒仔細看,因為用的是maven來管理,就把專案可能用到的所有jar包,都引入進去了。
web專案,最基礎的配置,就在web.xml中。
先看完所有的配置檔案,在看錯誤日誌分析。
預設歡迎頁面。
<welcome-file-list>
<welcome-file>/pages/index.jsp</welcome-file>
</welcome-file-list>
宣告springMVC 的 DispatcherServlet
需要配置兩處的引用contextConfigLocation。<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:application*.xml</param-value> </context-param> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/classes/springmvc-config.xml </param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet>
至於這兩處配置的, xml檔案的名字,只要是有配置,就根據你的配置檔名,* 代表所有,如果沒有配置,就是預設的檔案,applicationContext.xml 和 springmvc-servlet.xml
如果 context-param 不進行配置,則在啟動專案時,就會報錯。缺少配置檔案。
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml];
如果不配置下面的contextConfigLocation,但是配置load-on-startup,則也是在啟動專案時報錯。
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/springmvc-servlet.xml];
但是,如果contextConfigLocation 和load-on-startup都不配置,啟動時不報錯。 會在呼叫 controller時報錯。
錯誤同上:
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/springmvc-servlet.xml];
然後,需要寫 攔截請求的配置。
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.json</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.swf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.xml</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.mp3</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.xls</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.rar</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.zip</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>*.jpg</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>*.ico</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.woff</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.ttf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.eot</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.otf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.svg</url-pattern>
</servlet-mapping>
servlet-name 是 default 的,是不通過 springMVC DispatcherServlet的,
servlet-name 是 springmvc 的,就會去找對應的controller.