首页>>后端>>Spring->springmvc框架(springmvc)

springmvc框架(springmvc)

时间:2023-12-07 本站 点击:0

什么是springmvc框架

Spring MVC是当前最优秀的MVC框架,自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高。Spring 3.0更加完善,实现了对Struts 2的超越。现在越来越多的开发团队选择了Spring MVC。

Struts2也是非常优秀的MVC构架,优点非常多比如良好的结构,拦截器的思想,丰富的功能。但这里想说的是缺点,Struts2由于采用了值栈、OGNL表达式、struts2标签库等,会导致应用的性能下降,应避免使用这些功能。而Struts2的多层拦截器、多实例action性能都很好。可以参考我写的一篇关于Spring MVC与Struts2与Servlet比较锋野的文章《Struts2、SpringMVC、Servlet(Jsp)性能对比 测试》

Spring3 MVC的优点:

1、Spring3 MVC使用简单,学习成本低。学习难度小于Struts2,Struts2用不上的多余功能太多。呵呵,当然这不是决定因素。

2、Spring3 MVC很容易就可以写出性能优秀的程序,Struts2要处处小心才可以写出性能优秀的程序(指MVC部分)

3、Spring3 MVC的灵活是你无法想像的,Spring框架的扩展性有口皆碑,Spring3 MVC当然也不会落后,不会因使用了MVC框架而感到有任何的限制。

Struts2的众多优点:

1、老牌的知名框架,从Struts1起积累了大量用脊慧户群体。技术文档丰富。

2、其它方面略... (呵呵,樱基答是不是不公平?)

Spring的官方下载网址是:

个人对于spring mvc框架的理解

以下我的个人理解加上网络上的所查阅资料,对于spring mvc框架的一些总结,不足之处还望指出

    在web模型中,MVC是一种很流行的框架,通过把Model,View,Controller分离,把较为复杂的web应用分成逻辑清晰的几部分,是为了简化开发,减少出错,同时也为了组内开发人员之间的配合。总之就是一种分层工作的办法。

(1) 用户通过浏览器向服务器发送请求,请求被springmvc的前端控制器DispatcherServlet拦截;

(2) DispatcherServlet拦截到请求后,会调用HandlerMapping处理映射器;

(3) 处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给调用处理器DispatcherServlet;

(4)DispatcherServlet会通过返回信息选择合适的滚简HanderAdapter(处理器适配器);

(5)HanderAdapter会调用并执行Handler(处理器),这里的处理器值的就是程序中编写的Controller类,也被称之为后端控制器;

(6)Controller执行完成后,会返回一个ModelAndView对象,该对象中包含视图名或包含模型和视图名

(7)HandlerAdapter将ModelAndView对象返回给DispatcherServlet;

(8)DispatcherServlet会根据ModelAndView对象选择一个合适的ViewReslover(视图解析器)

(9)ViewReslover解析后,会向DispatcherServlet中返回具体的View

(10)DispatcherServlet对view进行渲染(即将模型数据填充至视图中)

(11)视图渲染结果会返回给客户端浏览器显示

(1)DispatcherServlet接口:Spring提供的前端控制器,所有的请求都有经过它来统一分发。在DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。

(2)HandlerMapping接口:能够完成蠢备迹客户请求到Controller映射。

(3)Controller接口:需要为并发用户处理上述请求,因此实现Controller接口时,必须保证线程安全并且可重用。Controller将处理用户请求,这和Struts Action扮演的角色是一致的。一旦Controller处理完用户请求,则返回ModelAndView对象给DispatcherServlet前端控制器,ModelAndView中包含了模型(Model)和视图(View)。

从宏观角度考虑,DispatcherServlet是整个Web应用的控制器;从微观考虑,Controller是单个Http请求处理过程中的控制器,而ModelAndView是Http请求过程中返回的模型(Model)和视图(View)。

(4)ViewResolver接口:Spring提供的视图解析器(ViewResolver)在Web应用中查带并找View对象,从而将相应结果渲染给客户。

    是整个Spring MVC的核心。它负责接收HTTP请求组织协调Spring MVC的各个组成部分。其主要工作有以下三项:

(1)截获符合特定格式的URL请求。

(2)初始化DispatcherServlet上下文对应WebApplicationContext,并将其与业务层、持久化层的WebApplicationContext建立关联。

(3)初始化Spring MVC的各个组成组件,并装配到DispatcherServlet中。

SpringMVC

一、SpringMVC应用

1.springmvc是一个表现层的框架

经典三层架构:表现层, service层, dao层。

Spring MVC和Struts2一样,都是 为了解决表现层问题 的web框架,它们都是基于 MVC 设计模

式的。而这些表现层框架的主要职责就是处理前端HTTP请求。

Spring MVC 本质可以认为是对servlet的封装,简化了我们serlvet的开发

2.工作流程:

开发过程:

请求处理流程:

九大组件:

3.请求参数绑定,说白了SpringMVC是如何接受参数的:

原生servlet接大渣哪梁含收一个整型参数:

SpringMVC框架对Servlet的封装,简化了servlet的很多操作,SpringMVC框架对Servlet的封装,简化了servlet的很多操作

参数绑定:取出参数值绑定到handler⽅法的形参上

默认支持 Servlet API 作为方法参数:

绑定简单类型参数:

绑定Pojo类型参数:

绑定Pojo包装对象参数:

绑定日期类型参数(需要配置自定义类型转换器):

4.Restful风格

什么是Restful:

什么是rest:

Restful的优点:

Restful的特性:

Restful的示例:

SpringMVC如何支持Restful风格的请求:

5.Ajax Json交互

交互:两个方向

什么是Json:

@ResponseBody注解:

分析SpringMVC使用Json交互:

二、SpringMVC高级技术

1.拦截器(Inteceptor)使用

监听器、过滤器、拦截器的对比:

拦截器的执行流程:

多个拦截器的执行流程:

自定义SpringMVC拦截器:

2.处理multipart形式的数据

文件上传:

3.在控制器中处理异常:

4.基于Flash属性的跨重定向请求数据传递:

三、手写SpringMVC框架:

四、SpringMVC源码剖析

1.前端控制器 DispatcherServlet 继承结构:

2.重要时机点分析

SpringMVC处理请求的流程即为:

3.核心步骤滚码getHandler方法剖析:

4.核心步骤getHandlerAdapter方法剖析:

5.核心步骤ha.handle方法剖析:

6.核心步骤processDispatchResult方法剖析:

7.SpringMVC九大组件初始化:

五、SSM整合

1.整合策略:先整合Spring + Mybatis,然后再整合SpringMVC

2.Mybatis整合Spring

3.整合SpringMVC

未完待补充完整。。。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Spring/18219.html