整体流程(针对Servlet的请求):
-->客户发出请求
-->Web服务器收到请求
-->Web服务器转交请求给Web容器(如tomcat)
-->Web容器调用指定Servlet
-->Servlet调用模型(具体业务逻辑)处理请求
-->Servlet将模型返回的数据保存到某个属性范围中
-->Servlet将请求转发给jsp
-->jsp从属性范围中获取数据
-->jsp构建页面并返回给Web容器
-->Web容器将页面返回给Web服务器
-->Web服务器将响应数据发回给客户。
详细流程
1、页面提交请求到servlet
2、容器创建请求和响应对象
3、容器根据URL查找具体的servlet
4、容器加载并实例化servlet
5、执行servlet的初始化方法(init())
6、容器创建一个新的线程处理该请求
7、容器调用servlet的service方法(同时将请求和响应对象作为参数)
8、servlet调用模型的业务逻辑进行处理
9、servlet将处理结果保存到指定对象中(request、session、application)
10、servlet将请求转发给相应的jsp(处理完成后,会调用destory()方法)
11、jsp动态生成响应(使用响应对象向流写入HTML或其他内容)
12、容器将响应(通过WEB服务器)返回给客户端
13、浏览器解析并渲染返回的html文件
SpringMVC
(1)客户端(浏览器)发送请求,直接请求到 DispatcherServlet。
(2)DispatcherServlet 根据请求信息调用 HandlerMapping,解析请求对应的 Handler。
(3)解析到对应的 Handler(也就是我们平常说的 Controller 控制器)后,开始由 HandlerAdapter 适配器处理。
(4)HandlerAdapter 会根据 Handler 来调用真正的处理器开处理请求,并处理相应的业务逻辑。
(5)处理器处理完业务后,会返回一个 ModelAndView 对象,Model 是返回的数据对象,View 是个逻辑上的 View。
(6)ViewResolver 会根据逻辑 View 查找实际的 View。
(7)DispaterServlet 把返回的 Model 传给 View(视图渲染)。
(8)把 View 返回给请求者(浏览器)