1. SpringMVC配置詳解:
- 配置激活@controller和@RequestMapping註解的語句
- 配置靜態資源過濾器
- 配置視圖解析器,如果使用freemarker插件視圖解析器的配置在後面
- 實現文件上傳插件的配置也放在這裏
- 攔截器的配置
<context:component-scan base-package="com.controller"></context:component-scan>
<mvc:annotation-driven></mvc:annotation-driven>
<mvc:default-servlet-handler/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/page/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
</bean>
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/static/js/**"/>
<mvc:exclude-mapping path="/static/css/**"/>
<mvc:exclude-mapping path="/user/login"/>
<bean class="com.hxzy.interceptors.Interceptors"></bean>
</mvc:interceptor>
</mvc:interceptors>
- 如果是使用的freemarker,springmvc和properties中的相關配置如下:
<bean id="freemarkerConfiguration"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="classpath:freemarker.properties" />
</bean>
<bean
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="freemarkerSettings" ref="freemarkerConfiguration" />
<property name="templateLoaderPath">
<value>/WEB-INF/html/</value>
</property>
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
<property name="contentType" value="text/html; charset=utf-8" />
<property name="cache" value="true" />
<property name="prefix" value="/"></property>
<property name="suffix" value=".html"></property>
</bean>
template_update_delay=0
default_encoding=UTF-8
output_encoding=UTF-8
locale=zh_CN
number_format=\#
classic_compatible=true
2. SpringMVC中的幾個核心組件以及作用:
- DispatcherServlet: 前端控制器,所有的用戶請求都要經過它來分發,在請求到達COntroller之前,需要藉助Spring提供的HandlerMapping定位到具體的Controller
- HandlerMapping: 處理器映射器,用來完成用戶請求到Controller的映射
- HandlerAdapter: 處理器適配器,幫助DispatcherServlet調用映射到請求的處理程序
- Controller: 控制器,負責處理由DispatcherServlet分發的請求,把用戶請求的數據經過業務處理層處理之後封裝成一個Model,然後在吧該Model返回給對應的View進行展示
- ViewResovler: 視圖解析器:在Web應用中查找View對象,從而將相應結果渲染給客戶,解析成相應的頁面
3. SpringMVC工作流程:
- 客戶端請求提交到前端控制器DispatcherServlet進行統一分發
- 由DispatcherServlet前端控制器查詢一個或多個處理映射器HandlerMapping,找到處理請求的Controller:通過xml配置或者註解進行查找,找到之後向前端控制器返回執行鏈
- 前端控制器去調用處理適配器HandlerAdapter去執行控制器Controller
- 控制器Controller調用業務邏輯層處理數據之後返回ModelAndView
- 再由DispatcherServlet前端控制器查詢一個或多個ViewResoler視圖解析器,找到ModelAndView指定的視圖
- 視圖負責將結果顯示到客戶端