1. 程式人生 > >搭建springMVC專案,web.xml配置,及分析。

搭建springMVC專案,web.xml配置,及分析。

突發奇想,根據所學,自己搭建springMVC專案,然後逐漸新增其他框架,構建一個後臺管理系統。

也算是鞏固以前學的基礎了。

至於用了哪些jar包,沒仔細看,因為用的是maven來管理,就把專案可能用到的所有jar包,都引入進去了。

web專案,最基礎的配置,就在web.xml中。

先看完所有的配置檔案,在看錯誤日誌分析。

預設歡迎頁面。

<welcome-file-list>
		<welcome-file>/pages/index.jsp</welcome-file>
	</welcome-file-list>

宣告springMVC 的 DispatcherServlet
	<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>
需要配置兩處的引用contextConfigLocation。

至於這兩處配置的, 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.