SSM 第八章 Spring MVC体系结构和处理请求控制器

1.1 认识Spring MVC
    Spring MVC作为控制器(Controller)来建立模型与使徒的数据交互,是结构最清晰的MVC Model2实现,是一个典型的MVC框架。
    在Spring MVC框架中,Controller替代Servlet来担负控制器的职责,Controller接受请求,调用相应的Model惊醒处理,处理器完成业务处理后返回处理结果,Controller调用相应的View并对处理结果进行视图渲染,最后传送响应消息到客户端。
1.2搭建环境
在MyEclipse中新建Web项目后,使用Spring MVC框架的步骤如下:
(1) 引入jar文件;
(2)Spring MVC配置:在web.xml中配置Servlet,定义DispatcherServlet;
创建Spring MVC的配置文件;
(3)创建Controller(处理请求的控制器)
(4)创建View(本书中我们使用JSP作为视图)
(5)部署运行
1.3请求处理流程及体系结构
(1)Spring MVC框架的请求处理流程
    ![这里写图片描述](https://img-blog.csdn.net/20180914091355461?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXlpbnpoYW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

a、 用户发起请求————>前端控制器,前端控制器根据请求信息(如 URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图 2-1 中的 1、2 步骤;

b、 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在 Spring Web MVC 中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个 ModelAndView(模型数据和逻辑视图名);图 2-1 中的 3、4、5 步骤;

c、 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图 2-1 中的步骤 6、7;

d、 前端控制器再次收回控制权,将响应返回给用户,图 2-1 中的步骤 8;至此整个结束
(2)Spring MVC框架的体系结构
一、客户端发出一个HTTP请求,WEB应用服务器接收到这个请求,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将该请求转交给DispatcherServlet处理。

二、DispatcherServlet接收到这个请求后,根据请求信息及HandlerMapping的配置找到处理请求的处理器(Handler)。

三、DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter,它用统一的适配器接口调用Handler。

四、处理器完成业务逻辑的处理后将返回一个ModelAndView给DispatcherServlet,ModelAndView包含了视图逻辑名和模型数据信息。

五、ModelAndView中包含的是“逻辑视图名”而非真正的视图对象,DispatcherServlet借由ViewResolver完成逻辑视图名到真实视图对象的解析工作。

六、得到真实的视图对象View后,DispatcherServlet就使用这个View对象对ModelAndView中的模型数据进行视图渲染并返回给客户端。

七. 最终客户端获得响应信息,可以是普通的HTML页面,也可以是一个XML或者JSON格式的数据等。
(3) Spring MVC框架的特点
优点:1.清晰的角色划分。 Spring MVC在Model. View和Controller方面提供了一个非常清晰的角色划分,这三个方面真正是各司其职,各负其责。
2.灵活的配置功能:因为 Spring的核心是IoC,同样在实现MVC上,也可以把各种类当做Bean来通过XML进行配置。
3.提供了大量的控制器接口来实现类,开发者可以使用Spring提供的控制器实现类,也可以自己实现控制器接口。
3.真正做到与View层的实现无关,他不会强制开发者使用JSP,完全可以根据项目需求使用Velocity,XSLT等技术,使用起来更加灵活。
5.国际化支持
6.面向接口编程
7.Spring提供了Web应用开发的一整套流程,不仅仅是MVC,它们之间可以很方便的结合一起。
缺点:

一:Spring与MVC 的Servlet API 耦合,难以脱离容器独立运行

二:太过于细分,开发效率低

三:过度追求完美,有过度设计的危险

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值