I'll try anything once

人生苦短,何妨一试

SpringMVC请求跟踪

Spring MVC工作流

图中出现了问题, 第六步应该是View Name
《SpringMVC请求跟踪》

步骤

如上图所示,一次网络的请求,共为以上的10个步骤,
1.客户端发起请求,会带有用户所有请求内容的信息,也可能包含用户提交的表单信息
2.客户发起的请求会全部交由前端控制器,然后交由其它的组件来执行实际的处理,springmvc中的前端控制器就是DispatcherServlet,DispatcherServlet通过查询处理映射来确定请求的下一站在哪里。
3.处理映射通过请求所携带的URL信息进行决策,应该由那个Controller进行处理该请求
4.DispatcherServlet通过处理映射得到对应的Controller之后,将请求转交给该Controller
5.Controller接受到该request,将需要处理的信息进行处理(好的Controller自身很少需要去处理工作甚至是不处理,而是将业务逻辑交由其他的对象进行处理,也就是普遍意义的Service层),处理完逻辑之后,会产生一些信息,这些信息是需要返回给用户的,称之为Model(模型),但是仅仅返回Model还是不够的,因为这是给用户看的, 需要一些更加友好的格式,一般为HTML, 所以,信息需要发送给一个View(视图)通常是JSP。所以,第五步共返回了两个东西给DispatcherServlet, 一个是Model, 另一个是View。
6.需要注意的是在第五步中, 返回给DispatcherServlet的视图并不是某个特定的JSP,实际上,其自身都确定视图就是JSP,仅仅是传递了一个逻辑名称,然后DispatcherServlet将该逻辑名称发送给视图解析器
7.视图解析器获取逻辑名称之后,匹配出特定的视图,并返回给DispatcherServlet该视图
8.DispatcherServlet已经直到是由哪个视图进行渲染,最后也就是视图的实现了,其将模型数据交给视图
9.视图渲染模型中的数据然后返回给DispatcherServlet
10.最后以response的形式返回给客户端。

reference

  • Spring入门经典
  • Spring IN Action(Fourth EDITION)
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

5 × 1 =