Servlet生命周期
我们要知道servlet是单例的
生命周期的流程
1.创建对象
2.初始化
public void init(ServletConfig config) throws ServletException {
this.config = config;
this.init();
}
3.service()
public abstract void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException;
4.do方法
5.销毁
public void destroy();
创建对象的时机
1.默认是第一次访问Servlet的时候创建
2.也可以通过web.xml,来改变创建时机,比如在容器启动的时候创建,DispatcherServlet
其中有一个标签为
<load-on-startup>1<load-on-startup/>
执行的次数
对象的创建只有一次,因为单例
初始化也只有一次
销毁一次
servlet的线程安全
构成线程不安全的三个因素
1.多线程环境(多个访问,同时访问到Servlet)
2.多个线程共享资源,比如一个单例对象(Servlet是单例的)
3.这个单例对象是有状态的(Servlet方法中采用全局变量)