1.Servlet机制
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
总结:Servlet是JAVA实现前后端数据交互的一种机制
2.核心对象
Request对象
Response对象
3. SpringMVC调用流程图
重要的组件
- 前端控制器 DispatcherServlet 实现请求的流转
- 处理器映射器 实现了请求路径与方法之间的映射.
- 处理器适配器 处理器的管理器 内部有N个处理器. 针对不同的用户请求 调用不同的处理器完成任务
- 视图解析器 实现页面路径的拼接
SpringMVC程序启动前状态说明
父容器概念:
- Spring容器(内存中的一大块空间)由于IOC/DI的机制,可以作为第三方的管理者 所以作为父级.
- SpringMVC容器,其中只负责Controller层的相关的对象的管理.
- 说明:当SpringMVC容器启动时,提前将SpringMVC中的所有请求路径方法方法完成映射.
SpringMVC执行流程
- 用户发起请求时第一步经过前端控制器
- 但是前端控制器 只负责请求的转发和响应。不做任何业务处理,将请求转发给处理器映射器
- 处理器映射器接收到前端控制器的请求之后,查询自己维护的服务列表信息
如果服务列表中有这个URL的key,该程序不能处理用户的请求,则返回特定数据,前端控制器接手之后响应用户404
如果服务列表中有该URL的key则说明可以正常执行,将该方法的对象返回给前端控制器。 - 前端控制器将返回的方法进行接收,但是由于前端控制器只负责转发和响应,不能直接执行该方法,所以交给处理器适配器执行。
- 处理器适配器根据方法的类型(xml配置文件/注解/其他方法),处理器适配器在自己的处理器库中挑选一个最为合适的处理器去执行该方法,当处理器执行该方法时标识业务开始,将最终的处理结果通过ModelAndView对象进行包裹,返回给前端控制器。
ModelAndView:Model:代表服务器返回的业务数据 View:服务器端返回的页面的名称 - 视图解析器将View中的数据进行解析,拼接一个完整的页面路径 前缀/url/后缀
- 视图渲染:将数据与页面进行绑定。这样用户就可以在页面中看到具体的数据
- 由于现在流行前后端分离,所以SpringMVC省略了视图解析和视图渲染,只有前5步,有了@ResponseBody省略视图解析和视图渲染。