一、简介:
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等
优点:它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架,对于初学者或者想了解mvc的人来说我觉得 spring是最好的,它的实现就是教科书!第二它和tapestry一样是一个纯正的servlet系统,这也是它和tapestry相比 struts所没有的优势。而且框架本身有代码,看起来容易理解。
二、SpringMVC几个核心类:
- 控制器核心类:org.springframework.web.servlet.DispatcherServlet - 配置web.xml
- 加载配置文件核心类:org.springframework.web.context.ContextLoaderListener – spring的配置文件
- 处理url影射核心类:org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping-根据bean的名称请求一个bean. spring的配置文件- /abc
- 处理视图资源核心类:org.springframework.web.servlet.view.ResourceBundleViewResolver returnhello – 决定返回的字符串由哪一个页面来显示。
- 处理注解URL核心类:org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping- 用于识别@RequestMapping注解。使用了上面的类,Controller还是需要配置的。<context:component-scan package=“cn.itcast”/>用于替代上面的类。
- 方法动态调用核心类org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver
- 文件上传核心类:org.springframework.web.multipart.commons.CommonsMultipartResolver
三:用Spring处理Web请求-Spring的MVC
四、几个核心类演示
1.DispatcherServlet详解:
- DispatcherServlet是SpringMVC的核心类,它就是一个Servlet.此类默认读取WEB-INF/[servlet-name]-servlet.xml配置文件。
- 重要说明:DispatcherServlet可以多次配置到web.xml中,它们将会读取自己的配置文件,但不会共享Bean.如果希望设置一些共享的Bean应该配置ContextLoaderListener来读取Spring的配置文件。
配置DispatcherServlet
1.在web.xml中加入servlet,namespac e默认可以不写,如果写了,就可以随便改名字,不一定要写出servlet-name]-servlet.xml,这里只是为了规范
2.在WEB-INF目录下写上springmvc-servlet.xml配置文件
2.DispatcherServlet
DispatcherServlet 会在 WEB-INF 目录下默认加载一个资源文件,名为: springmvc-servlet.xml 文件。如果配置信息有很多,此文件将会变得非常笨重。原则上,我们反倒是建议你将应用上下文 分散到多个配置文件 中去。为此,我们必须要载入:上下文载入器 ContextLoaderListener , 如下:( 需要说明的是:在 DispatcherServlet 的加载的配置文件与通过 ContextLoaderListener 加载的配置文件,将 不会拥有互相的访问权限
因此在web.xml要加入它
3.BeanNameUrlHandlerMapping
根据bean的名称请求一个bean. spring的配置文件
在配置文件springmvc-servlet.xml配置请求bean则不需要导入BeanNameUrlHandlerMapping这个类
而在spring的配置文件beans.xml则要导入
4.声明视图解析器:viewResolver
- Spring的view层是通过视图解析器来完成的。
- 在Spring中包含很多视图解析器,以下是经常使用,且比较灵活的一个解析器:
- ResourceBundleViewResolver,是通过加载外部的资源文件来解析目录视图的解析器。
默认会在classpath目录下查找springmvc.properties资源文件
springmvc.properties