spring mvc的学习1

来源:互联网 发布:jquery 数组去重 编辑:程序博客网 时间:2024/06/07 00:13

摘要:

项目中一直在使用spring,对于spring 却没有做过深入的研究,没有经过系统的学习,这里将学习spring做一个系统的总结,对照着官方文档,做出实际的例子来。

spring mvc简介:spring mvc中mvc是对model-view-controller简称,它是围绕DispatchServlet设计的,能够将请求转发到不同的处理、视图,还可以对上载文件进行支持。

springmvc特点:

1、清晰的职责划分

      controller, validator, command object, form object, model object, DispatcherServlet, handler mapping, view resolver,等不同模块都可以通过一个专门的对象来实现。

2、灵活、非入侵,在给定的场景中,可以使用如:@RequestParam,@RequestHeader,@PathVariable等来进行配置,可以任意写自己需要的方法做为控制器

3、可定制本地化,和主题解析,支持jsps,支持jstl,velocity等。

4、spring 标签库提供数据绑定和主题支持

5、spring的form 标签库,让写起jsp更加的方便。

6、自定义的控制器和视图解析。


spring中的DispatchServlet

像其它的mvc框架一样,spring mvc也是请求驱动的,将请求转发给控制器,并提供其它的功能,以帮助改进应用程序,与其它mvc 框架的不同之处是,spring mvc集成了spring ioc,所以你在用mvc的时候,对spring其它的功能也是可以同时使用的,这样以来,开发就变的实实在在 的方便了。

spring mvc的请求处理流程:


详细的流程如图中所示:拿http请求来说,先由前端控制器转发到中心控制器,生成业务model来组织数据,再调用视图模版,将model渲染到页面里返回给请求端。

DispatchServlet是一个继承自HttpServlet的类,在使用之前,拿tomcat窗口来说,需要在web.xml中进行配置,下边给出一个标准的JAVAEE配置:
<web-app>    <servlet>        <servlet-name>easy</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>easy</servlet-name>        <url-pattern>*.do</url-pattern>    </servlet-mapping></web-app>

这是servlet 3.0以下版本的配置,3.0以上,这里先不作论述。

以上是spring mvc配置的第一步,如果按照上述的配置的时候,我们则需要一个配置文件,是以servlet-name开头的配置文件,里边是对spring  bean的配置信息,文件名称应该为:easy-servlet.xml,spring 启动的时候默认会去/WEB-INF/下边去读取这个配置文件信息,如果没有这个配置文件,系统会启动失败。并报错。

spring mvc中特别bean:


在spring mvc中,有一些bean也属于mvc里边的,他们处于WebApplicationContext中,做为一种系统配置存在,DispatchSevlet在处理请求或者渲染视图的时候会用到它们,它们对于整个组合的稳定运行起到了关键的作用,主要有:HandleMapping,HandleAdapter,HandleExceptionResolver,ViewResolver,LocaleResolver,ThemeResolver,
MultipartResolver,FlashMapManager。

每 一种bean类型都有它们特定的作用,比如:ViewResolver是解决逻辑文字视图到实际的实图的,LocaleResolver是为了客户端解析,为了能提供一个支持国际化的环境。

所以对于上述几种bean,DispathServlet都有一种默认配置,配置信息保存在org.springframework.web.servlet包中的DispatchServlet.properties文件里。


DispatchServlet的执行顺序:

当你在tomcat中已经配置好DispatchServlet,而且各项配置完好,有客户端请求访问的时候,DispatchServlet的执行应该遵循:

1、在webApplicationContext中查找,并将请求保存到其中的一个属性,这样一来,控制器和其它的元素都能用到,通常这个属性:DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE。

2、本地化解析器绑定到请求,解决本地化,保存区域使用,如果不需要,则略过

3、主题解析器绑定,确实使用体积上视图,如果没有,忽略

4、上载文件处理

5、对适当的处理程序的查找,找到后,执行其中的业务,最终完成model,并准备model的渲染。

6、model如果返回了,视图就得到渲染,如果没有model返回,也无需渲染,这个时候也可以请求已经得到了响应。


DispatchServlet初始化参数:

最常用的就是在web.xml里配置的 contextConfigLocation。


下节会有参数的补充和主要的注解用法,会配上实例。







0 0
原创粉丝点击