一、學習指南
1.基礎知識:
1)什么是springMVC;
2)springMVC框架原理(掌握);
3)springMVC入門程序;
- a.非注解的處理器映射器,非注解的處理器適配器;
- b.注解的處理器映射器,注解的處理器適配器;
- 目的:學習前段控制器,處理器映射器,處理器適配器,視圖解析器;
4)springMVC與Mybatis整合(掌握);
5)springMVC注解開發(fā):
- 常用的注解學習;
- 參數(shù)綁定(簡單類型,pojo,集合類型);
- 自定義參數(shù)綁定(掌握)(CTO常設計);
6)springMVC與struts2的區(qū)別;
2.高級應用:
1)參數(shù)綁定(集合類型);
2)數(shù)據(jù)回顯;
3)上傳圖片;
4)json數(shù)據(jù)交互;
5)RESTful支持;
6)攔截器;
二、springMVC框架:
1.什么是springMVC:
springMVC是spring框架的一個模塊,springMVC和spring無需中間整合層進行整合;
springMVC是一個基于MVC的web框架;
2.什么是MVC:
MVC是一個設計模式,為了更好把系統(tǒng)框架框架維護擴展;
MVC在b/s系統(tǒng)的應用:

MVC原理圖
3.springMVC框架:

springMVC框架原理圖
三、程序開發(fā):
1.配置前端控制器:(web.xml)
<!--配置springMVC的dispatcherServlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--contextConfigLocation配置springMVC加載的配置文件,
如果不配置contextConfigLocation,默認加載的是/WEB-INF/servletname-servlet.xml(springmvc-servlet.xml)-->
<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>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--配置參數(shù):
1)*.action,訪問以.action結尾由DispatcherServlet進行解析;
2)/,所有訪問的地址都由DispatcherServlet進行解析,對于靜態(tài)文件的解析需要配置不讓DispatcherServlet解析,使用此種方式可以實現(xiàn)RESTful風格的url;
3)/*,此種配置錯誤;-->
2.配置注解的處理器適配器與處理器映射器:(springmvc.xml)
- 不常用:
<!--注解映射器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!--注解適配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
- 實際開發(fā)時使用:
<!-- 使用 mvc:annotation-driven代替上邊注解映射器和注解適配器配置
mvc:annotation-driven默認加載很多的參數(shù)綁定方法,
比如json轉換解析器就默認加載了,如果使用mvc:annotation-driven不用配置上邊的RequestMappingHandlerMapping和RequestMappingHandlerAdapter-->
<mvc:annotation-driven></mvc:annotation-driven>
3.開發(fā)Handler:
實現(xiàn)Controller接口;
在controller中需要在類前添加注解@Controller (標識讓容器管理創(chuàng)建對象)和在要處理url請求的方法前添加@Requestmapping("/requestURL");
4.視圖編寫
jsp文件,html文件等前端界面;
5.配置Handler:(springmvc.xml)
對于注解的Handler可以進行單個配置,實際開發(fā)中建議使用組件掃描。
1)單個配置:
<bean class="com.honey.ssm.controller.TestController"/>
2)組件掃描:(可以掃描controller,service等)
<context:component-scan base-package="com.honey.ssm.controller"></context:component-scan>
6.配置視圖解析器:(springmvc.xml)
- jsp解析器:
<!-- 視圖解析器這里配置前綴為jsp,vm所在的路徑,后綴配置為jsp,vm,
所以在Controller中返回的時候只需要進行返回文件的名稱就可以了,視圖解析器會找到該名稱的文件進行渲染 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置jsp路徑的前綴 -->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!-- 配置jsp路徑的后綴 -->
<property name="suffix" value=".jsp"/>
</bean>
- html解析器:
<!-- html視圖解析器 必須先配置freemarkerConfig,注意html是沒有prefix前綴屬性的-->
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath">
<value>/WEB-INF/view/html</value>
</property>
</bean>
<bean id="htmlviewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="suffix" value=".html" />
<property name="contentType" value="text/html;charset=UTF-8"></property>
</bean>
詳見:https://blog.csdn.net/superdog007/article/details/56488550