SpringMVC的執行原理
Spring的web框架圍繞着DispatcherServlet而設計。
經過DispatcherServlet將請求分到處處理映射器、處理適配器、視圖解析器。所以經過配置創建springMVC項目時,首先須要在web.xml中配置DispatcherServlet。創建springMVC項目的兩種方法。
第一種:配置版
1.在web.xml中配置DispatcherServlet以及初始化,而且經過<param-value>指定配置文件的路徑。css
<servlet> <!--註冊DispatcherServlet--> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--初始化DispatcherServlet--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!--將須要DispatcherServlet處理的請求映射到對應的URL--> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
2.在springmvc-servlet.xml配置文件中配置處理映射器(HandlerMapping)、處理適配器(HandlerAdapter)、視圖解析器(ViewResolver)、 請求的URL對應的Controller。web
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> <!--配置視圖解析--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--視圖的路徑的先後綴--> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <bean id="/hello" class="com.freeze.controller.HelloAgainController"/>
第二種:利用註解
1.與第一種同樣,在web.xml中配置DispatcherServlet以及初始化,而且指定配置文件路徑。
2.在springmvc-servlet.xml配置文件中spring
<!--開啓自動掃描包,讓指定包下的註解生效,有IOC統一管理--> <context:component-scan base-package="com.freeze.controller"/> <!--讓springMVC不處理靜態文件,例如.jsp .css等--> <mvc:default-servlet-handler/> <!-- 支持mvc註解驅動 在spring中通常採用@RequestMapping註解來完成映射關係, 要想使@RequestMapping註解生效, 必須向上下文中註冊DefaultAnnotationHandlerMapping 和一個AnnotationMethodHandlerAdapter實例 這兩個實例分別在類級別和方法級別處理。 而annotation-driven配置幫助咱們自動完成上述兩個實例的注入。 --> <mvc:annotation-driven/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>