1. Servlet接口
Servlet生命周期对应其中的三个方法:init()、service()、destroy()
2. 生命周期
2.1 验证
发起两次请求后关闭tomcat
2.2 打印结果分析
- 第一次请求时,Servlet会实例化(构造方法,tomcat底层通过反射调用,如果构造方法为private修饰,请求时会报错)、初始化(init方法)、服务(service方法)
- 第二次请求开始,每一次都是服务
- 当容器关闭时,其中的所有Servlet会销毁(destroy方法)
2.3 结论
- 默认情况下:Servlet在第一次接收到请求的时候才创建对象。可以通过配置改为容器启动时创建(请求响应速度快,但是启动速度慢)
- Servlet只会创建一次,所以请求都是该实例去响应
- Tomcat中,每一个请求会被分配一个线程来处理,所以可以说:Servlet是单实例,多线程方式运行的。
- 既然Servlet是多线程方式运行,所以有线程安全方面的可能性,所以尽量不要在Servlet中定义成员变量
3. 总结
名称 | 时机 | 次数 |
创建对象 | 默认情况:接收到第一次请求 修改启动顺序后:Web应用启动过程中 | 一次 |
初始化操作 | 创建对象之后 | 一次 |
处理请求 | 接收到请求 | 多次 |
销毁操作 | Web应用卸载之前 | 一次 |
© 版权声明
THE END
暂无评论内容