Servlet是一个基于http协议,在Servlet容器中运行的,按照Servlet规范编写的一个Java类。客户端发送请求至服务器端,服务器端将请求发送至Servlet,Servlet生成响应内容并将其传给服务器。
- 创建 Servlet 对象,通过服务器反射机制创建 Servlet 对象,第一次请求时才会创建。
- 调用 Servlet 对象的 init()方法,初始化 Servlet 的信息,init()方法只会在创建后被调用一次;
- 响应请求,调用 service()或者是 doGet(),doPost()方法来处理请求,这些方法是运行的在多线程状态下的。
- 在长时间没有被调用或者是服务器关闭时,会调用 destroy()方法来销毁 Servlet 对象。
MVC 的原理:
SpringMVC 框架是以请求为驱动,围绕 Servlet 设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是 DispatcherServlet,它是一个 Servlet,顶层是实现的Servlet接口。
简单来说SpringMVC的流程是这样的:
客户端发送请求 -> 前端控制器 DispatcherServlet 接受客户端请求 -> 找到处理器映射 HandlerMapping 解析请求对应的 Handler-> HandlerAdapter 会根据 Handler 来调用真正的处理器开处理请求,并处理相应的业务逻辑 -> 处理器返回一个模型视图 ModelAndView -> 视图解析器进行解析 -> 返回一个视图对象->前端控制器 DispatcherServlet 渲染数据(Moder)->将得到视图对象返回给用户
- 客户端(浏览器)发送请求,直接请求到
DispatcherServlet。 DispatcherServlet根据请求信息调用HandlerMapping,解析请求对应的Handler。- 解析到对应的
Handler(Controller)后,开始由HandlerAdapter适配器处理。 HandlerAdapter会根据Handler来调用真正的处理器开处理请求,并处理相应的业务逻辑。- 处理器处理完业务后,会返回一个
ModelAndView对象,Model是返回的数据对象,View是个逻辑上的View。 ViewResolver会根据逻辑View查找实际的View。DispaterServlet把返回的Model传给View(视图渲染)。- 把
View返回给请求者(浏览器)

