当用户请求 会发送到前端控制器,DisptcherServlet根据请求参数生成代理请求,找到对应的实际控制器,控制器处理请求,创建数据模型,访问数据库,将模型响应给中心控制器,控制器使用模型与视图渲染视图结构,将结果返回给中心控制器,再将结果返回给请求者
没有sprinmvc之前,我们用的是selervt 一个请求配置一个servlet,在web.xml文件中进行配置,要开发一个项目,要使用好多个serlet,配置。
而springmvc出现,替换了servlet,本质上还是一个大的servlet,帮我们做了集成式的处理。 具体过程:
- 当用户发起请求,先会发送到前端控制器(DisptcherServlet),也叫分发控制器,
- 根据当前发出的请求去查询对应的handler,也就是查找对应的controller是哪一个,
- 找到controller之后呢, 执行返回去的执行基链,(有一堆的链 比如前置处理,后置处理),会把这些都封装起来返回给前端控制器,
- 执行对应的hanlder,因为controller执行对应的hanlder是不同的,所有要通过一个适配器的组件来找到对应的controller方法,来进行执行,
- 执行完后在返回一个ModelAndView对象,方便我们进行页面回显和数据展示,。然后再将modelandview返回前端控制器,因为所有处理的核心流程都在前端控制器
- 返回之后,已经有视图和模型了,然后发送一个解析视图的请求,由viewResolver视图解析器解析,也就是找到对应的jsp页面,把这些东西返回给前端控制器
- 当返回之后 通过jsp。。等前端模板 进行页面渲染,把页面数据都进行一个填充,当填充好 在返回给浏览器 给用户看