使用spring mvc需要到其上下载两个最重要的的文件
Spring-framework-3.3.1.RELEASE-with-docs.zip(发行包和API文件)
Spring-framework-3.0.1.RELEASE-A-dependencies.zip (spring所需要的依赖包)
最核心部分
Org.springframework .beans
Org.springframework .core
Org.springframework .context
Org.springframework .context.support
Org.springframework .web.servlet
Org.springframework .web-3.0.1.ELEASE.jar
Org.springframework.asm-3.0.1.RELEASE.jar
pression-3.0.1.RELEASE.jar
依赖包(logging,主要是写日志)
apachemons.logging-1.1.1jar
apachemons.logging-sources-1.1.1.jar
Spring MVC大致的运行流程 front controller 前端控制器(总控制中心 DispatcherServlet)然后再到达 controller (自己实现的业务controller) 每个功能都会有一个 再来调用业务处理的实际代码 最后将处理好的结果(视图)返回给视图.
一简单的spring mvc
第一步 实现方法 配置l文件
第一, 注册一个servlet  两个参数
第二,  name 和class <org.springframework.web.servlet.DisepatcherServlet>
第三, 启动参数在web容器启动的时候就进行初始化<load-on-startup>1</ load-on-startup >
第四, 什么样的情况下调用这个servlet
第五, 配置一个映射 <servlet-mapping>两个参数<servlet-name>和<url-pattern>
第六, <servlet-name>这个里面的是标明需要调用的是注册的servlet
第七, <url-patten>这个参数是标明是以什么结尾的标示去调用 <servlet-name>里面的初始化类 通过控制中心来转发
第二步 前段控制器通过映射将请求转发业务controller
第一 通过Handler Mapping 主键映射 由当前的主键构成的映射 映射到具体的控制器(controller) 最核心的就是一个依赖注入,也就是一个大的对象工厂
菜鸟教程springmvc
第二 配置一个spring 的配置文件  其主要的就是<beans></beans>标签 里面包含多个<bean>(这个就是主键) 每个bean里面都包含了 id和class属性 id就是一个标示 其中class 就是对应的java object(自己实现的controller) 当web容器启动的时候就会进行实例化 以此来达
到spring的结合的工程
第三 默认的会在/WEB-INF/下面去寻[servletName]-配置文件
第四 在[servletName]-l文件里面配置<beans>,其中的头部模式定义我们从其他的文件里面去复制过来l
第五 在文件里面定义 <bean> 也就是控制器 自己实现的controller
第六 需要在 <beans> 需要定义一个映射器 映射处理器
    <bean class=”org.springframework.web.servlet.handler.SimpleurlHandlerMapping”> 这个是简单的通过URL的不同决定处理到不同的控制器的映射 这个控制器有个重要的属性 mappings 映射列表
<property name=”mappings”>
<props>键值对
    <prop key=”start.do”>控制器名称</prop> key就是url
</props>
</property>
第三步 如何实现控制器
第一 最简单的方法 实现一个@controller 接口 或者 AbstractController抽象类。
    handleRequest方法 返回的是一个ModelAndView类型(返回的是一个逻辑上的视图名称)
第二 具体的逻辑视图的实现需要在 ViewResolver&View(把返回的逻辑视图映射到实际具体的视图实现) 配置方法 是在 
<bean class=”org.springframework.web.servlet.view.UrlbasedViewResoler”>根据返回的逻辑视
图进行拼装 通过request.forward() 的方法 最后通过拼装成一个路径
<property name=”viewClass” value=”org.springframework.web.servlet.view.JstlView” />对m
odel模型进行处理 流程上面规定必须指定一个处理方式  指定model 通过什么方式来处理,这里采用jstl技术处理(可以有多种方式来进行处理),否则会报错!   
<property name=”prefix” value=”/WEB-INF/pages”></bean> 拼装的前缀
    <property name=”suffix” value=”.jsp”></bean> 拼装的后缀
</bean>逻辑视图是按照那种方法来解析实现的 完成逻辑视图到真正视图的映射
二 基于注解的控制器 controller
直接跳转页面的控制器
注意:WEB-INF下面的页面是不能够通过url来直接访问的 将页面给隐藏起来
@用于直接跳转页面的
ParaneterizableViewController(返回的是一个view的名称), UrlFilenameViewController
@在同一控制器类中处理多个请求的
MultActionConttroller.具体调用的方法通过MethodNameResolver决定(InternalPathMethodResolver.ParameterMethosResolver,PropertiesMethdResolver)
第一步
第一方式ParaneterizableViewController
使用一个现成的controller 通过配置 一个参数化的controller 类
<bean id=”controller名称” class=”org.springframework.web.servlet.mvc.ParameterizableViewController”>其中有一个参数 视图名称
    <property name=”viewName” value=”视图名称”/>
</bean>目的就是返回一个视图名称
第二方式 UrlFilenameViewController
这个方式就是直接通过url来解析处视图名称 根据你的请求来解析 如login.do 解析的就是login.jsp 视图
第三中方式 能够封装表单的CommondController 、FromController
让自己的controller来继承AbstractCommondController 并且重写其中的handle方法。
其中有四个参数 request 、response、commond(页面表单提交的数据对象)、Bindexcption(绑定页面表单对象可能出现的异常)
在[servletName]-l中需要配置一个
<bean id=”控制器名称”  class=”自己写的controller路径”>
    <proprtty name=”commandClass” value=”自己写的控制器中需要绑定的表单实体数据对象”/> 这个地方就是实现表单数据到 实体数据对象的绑定 实现注入
</bean>
这里面的数据绑定涉及到一个DataBind对象 getAsText(),setAsTest(),以及setValue()方法
还有一个属性编辑器 proptyEitor
现在定义一个自己的属性编辑器 proptyEitor  这里需要在DataBind 里面注册一个自定义的属性编辑器,重写(初始化绑定器)initBinder方法 ,为该方法里面的binder绑定器重新注册一个属性编辑器registerCustomEditor(需要转换的类别,自己定义的一个属性编辑器)