什么是springmvc
springmvc是spring框架的一个模块,springmvc和spring无需通过中间整个层进行整合,它是一个基于mvc的web框架。
springmvc与struts2的区别
- springmvc是基于方法开发的,struts2是基于类开发的。springmvc将url和controller方法映射,映射成功后springmvc生成一个Handler对象(也就是controller),对象中只包括了映射的method,方法执行结束后,形参数据销毁。
 - springmvc可以进行单例开发,并且建议使用单例开发,struts2只能多例开发(struts2通过类成员变量接收数据,多个线程中的数据可能不一样,所以不能使用单例开发)。
 - 经过实际的测试,struts2速度慢,是因为使用了struts标签,所以在使用struts2进行开发的时候,建议使用jstl。
 
springmvc框架执行流程
用入门程序来学习springmvc
springmvc运行环境
jar包下载地址(mybatis+spring(包括springmvc)所有jar包):
http://download.csdn.net/detail/jinzili777/9480604
配置前端控制器
在web.xml文件中,
1  | <!-- springmvc前端控制器 -->  | 
非注解的处理器映射器和适配器
在classpath下的springmvc.xml中
 不使用注解的处理器适配器
 
此方法只能执行实现了Controller接口的Handler,下面是一个小demo
开发Handler
1  | public class ItemsController1 implements Controller {  | 
setViewName()方法中是转发到的jsp页面,页面这里不再赘述,在这个jsp页面可以取到request域中的itemsList。
在spring容器加载Handler
1  | <bean name="/queryItems.action" class="cn.jzl.ssm.controller.ItemsController1"></bean>  | 
 配置不使用注解的处理器映射器1
2
3
4<!-- 
	将bean的name作为url进行查找,需要在配置Handler时指定beanname(就是url)
 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
配置视图解析器
1  | <!-- 视图解析器  | 
注解的处理器映射器和适配器
在spring3.1之前使用
org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping注解映射器。
在spring3.1之后使用
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping注解映射器。
在spring3.1之前使用
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter注解适配器。
在spring3.1之后使用
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter注解适配器。
配置注解映射器和适配器
1  | <!-- 注解映射器 -->  | 
开发注解Handler
1  | //使用Controller标识 它是一个控制器  | 
@controller注解必须要加,作用标识类是一个Handler处理器。
@requestMapping注解必须要加,作用:
    1、对url和Handler的方法进行映射。
    2、可以窄化请求映射,设置Handler的根路径,url就是根路径+子路径请求方式
    3、可以限制http请求的方法
映射成功后,springmvc框架生成一个Handler对象,对象中只包括 一个映射成功的method。
在spring容器中加载Handler
1  | <!-- 对于注解的Handler可以单个配置 -->  | 
配置视图解析器方法不变
使用mvc:annotation-driven
配置映射器和适配器
使用如下配置,可以代替第二种方法中注解的适配器和映射器
1  | <mvc:annotation-driven></mvc:annotation-driven>  | 
开发注解Handler
与第二种方法开发方法一致
配置视图解析器方法不变
小结
在学习并使用springmvc的过程中,了解其执行流程是非常重要的。在实际使用过程中会碰到各式各样的问题,也不是一篇博客或一部视频能够介绍完全的,所以学习没有捷径,只有通过一行行的代码累加、沉淀,多敲几行代码,理解就会加深几分。共勉。