Servlet 生命周期

1. Servlet接口

Servlet生命周期对应其中的三个方法:init()、service()、destroy()

图片[1]-Servlet 生命周期-深吸氧

2. 生命周期

2.1 验证

图片[2]-Servlet 生命周期-深吸氧

发起两次请求后关闭tomcat

图片[3]-Servlet 生命周期-深吸氧

2.2 打印结果分析

  • 第一次请求时,Servlet会实例化(构造方法,tomcat底层通过反射调用,如果构造方法为private修饰,请求时会报错)、初始化(init方法)、服务(service方法)
  • 第二次请求开始,每一次都是服务
  • 当容器关闭时,其中的所有Servlet会销毁(destroy方法)

2.3 结论

  • 默认情况下:Servlet在第一次接收到请求的时候才创建对象。可以通过配置改为容器启动时创建(请求响应速度快,但是启动速度慢)
图片[4]-Servlet 生命周期-深吸氧
  • Servlet只会创建一次,所以请求都是该实例去响应
  • Tomcat中,每一个请求会被分配一个线程来处理,所以可以说:Servlet是单实例,多线程方式运行的。
  • 既然Servlet是多线程方式运行,所以有线程安全方面的可能性,所以尽量不要在Servlet中定义成员变量

3. 总结

名称时机次数
创建对象默认情况:接收到第一次请求
修改启动顺序后:Web应用启动过程中
一次
初始化操作创建对象之后一次
处理请求接收到请求多次
销毁操作Web应用卸载之前一次
© 版权声明
THE END
请撒泡尿证明你到此一游
点赞1 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容