Spring MVC 的请求过程

请求的历程

这里写图片描述

DispatcherServlet

  • DispatcherServlet 是 Spring MVC 的前端控制器,主要任务是将请求发送给 Spring MVC 控制器 (Controller)。

  • Spring MVC 所有请求都会通过 DispatcherServlet 前端控制器,DispatcherServlet 是单实例的 Servlet 。

handler mapping

  • DispathcerServlet 需要知道应该将请求发送到哪一个控制器。所以 DispatcherServlet 会查询一个或多个处理器映射(handler mapping)来确定请求的下一站。

  • 处理器映射会根据请求的 URL 信息进行决策。

Controller

  • 控制器是一个用于处理请求的 Spring 组件。

  • 通过 handler mapping 后, DispatcherServlet 会将请求发送给选中的控制器。到了控制器,请求会卸下负载(用户提交的信息)并耐心等待控制器处理这些信息。(实际上,设计良好的控制器本身只处理很少甚至不处理工作,而是将业务逻辑委托给一个或者多个服务对象进行处理)

  • 控制器完成处理后,通常会产生一些信息,这些信息需要返回给用户并在浏览器上显示。这些信息称为模型(model)。

  • 仅仅返回 model 是不够的,这些信息需要以用户友好的方式进行格式化,一般会是 HTML。所以信息需要发送给一个视图(VIEW),通常会是 JSP。

  • 控制器所做的最后一件事就是将模型数据打包,并且标示出渲染输出的视图名称。接下来会将请求连同模型和视图名发送回 DispatcherServlet。

这样控制器就不会和特定的视图相耦合,传递给 DispatcherSerclet 的视图名称并不是直接表示某个特定的 JSP。它仅仅传递了一个逻辑名称,DispatcherServlet 将会使用视图解析器(view resolver) 来将逻辑视图名匹配为一个特定的视图实现

视图的实现

  • DispatcherSwervlet 已经知道由哪个视图渲染结果,它的最后一站是视图的实现(可能是 JSP),在这里它交付模型数据。视图使用模型数据渲染输出,这个输出会通过响应对象传递个客户端。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值