分為啟動(dòng)(加載web應(yīng)用的有關(guān)數(shù)據(jù),創(chuàng)建ServletContext對(duì)象,對(duì)Filter和一些Servlet初始化)、運(yùn)行時(shí)(主要是Servlet容器調(diào)用service(方法))和終止(釋放資源)三個(gè)階段。
該過程可通過Tomcat的管理應(yīng)用來控制應(yīng)用的生命周期:

Reload操作: 相當(dāng)于先stop當(dāng)前web應(yīng)用,再start。
Undeploy操作: 從Tomcat卸除,web文件被刪除。
## Servlet生命周期
就是Servlet容器控制的Servlet接口提供的init、service、destroy三個(gè)方法。
在Servlet的生命周期中,初始化和銷毀只會(huì)發(fā)生一次,即init()和destroy()方法只會(huì)被Servlet容器調(diào)用一次。service()取決于客戶端請(qǐng)求的次數(shù)。
實(shí)踐驗(yàn)證:寫一個(gè)繼承于GenericServlet類的xxxservlet,設(shè)置三個(gè)全局變量分別在三個(gè)方法中打印,看結(jié)果,即可。
并且,可以有多個(gè)xxxservlet對(duì)象對(duì)應(yīng)同一個(gè)xxxServlet類,盡管類代碼一模一樣,但屬于不同的servlet,互相沒有關(guān)系?。?/p>

——————
## ServletContext與Web應(yīng)用范圍
Servlet容器在啟動(dòng)一個(gè)web應(yīng)用時(shí),會(huì)為它創(chuàng)建唯一的ServletContext對(duì)象,終止時(shí)銷毀。
因此,ServletContext對(duì)象與web應(yīng)用具有同樣的生命周期。而且,ServletContext對(duì)象可以被web應(yīng)用中的所有web組件共享。因此,可以利用該對(duì)象來存取web應(yīng)用范圍內(nèi)的共享數(shù)據(jù)(可以是任意類型)。

實(shí)踐驗(yàn)證: 實(shí)現(xiàn)web統(tǒng)計(jì)訪問次數(shù)的功能。先寫一個(gè)Counter類,將其放入servletContext對(duì)象。(這里有一種技巧,就是怎么放??你總不能每次請(qǐng)求都放一次吧!所以,先從servletContext獲取該對(duì)象,如果為null則將其放入,所以第二次以后都只是取,不會(huì)再執(zhí)行放入的邏輯了,if不符合了啊,當(dāng)且僅當(dāng)?shù)谝淮尾欧?。