jsp的执行过程
- 客户端发送请求(对应jsp的url)
- 容器器根据url找到对应的jsp,并将该jsp转换成servlet的源码
- 容器将servlet源码编译成字节码文件
- 容器执行字节码文件
- 将执行结果响应到客户端
servlet的执行过程
- 客户端发送请求
- 容器根据url在web.xml中找到对应的servlet
- 创建该servlet的对象
- servlet对象进行初始化,执行init()方法
- 创建request和response对象,寻找并执行service方法,在service中执行对应的doGet或者doPost方法。因为子类重写了doGet或doPost方法,传入创建好的两个对象,所以执行时是执行重写的方法。
- 向客户端进行响应,并将request和response进行销毁。
- 等待容器关闭或者程序停止时,执行destory方法对创建的servlet对象进行销毁。
**注意:整个过程只创建了一个servlet对象,存在多线程问题。**Mvc
springMvc的执行过程
- 客户端发送请求给【前端控制器】
- 【前端控制期】请求【处理映射器找】到对应的【处理器】
- 【处理映射器】将对应的【处理器】返回给【前端控制器】
- 【前端控制器】调用【处理器适配器】去执行【处理器】
- 【处理器适配器】去执行【处理器】
- 【处理器】执行完毕之后返回ModelAndView给【处理器适配器】
- 【处理器适配器】将ModelAndView返回给【前端控制器】
- 【前端控制器】依据【视图解析器】进行视图解析
- 【视图解析器】向【前端控制器】返回对应的View
- 【前端控制器】对视图进行渲染,及将ModelAndView中的数据填充到request域
- 【前端控制器】向客户端响应结果