- Java Web基礎與實例教程
- 孔祥盛 趙芳主編
- 499字
- 2025-03-19 16:21:04
2.1.8 Servlet程序的生命周期
運行“傳統”Java程序時,Java虛擬機將Java類的字節碼文件加載到內存,然后調用構造方法實例化一個Java對象,接著運行對象的main()方法。main()方法運行結束后,內存中的對象被清除。下次再運行該Java程序時,重復上述步驟。傳統Java程序的生命周期如圖2-16所示。
由于許多瀏覽器用戶可以同時運行一個Servlet程序,如果Servlet程序也和傳統的Java程序一樣,每次運行時先將字節碼文件加載到內存、再創建對象,效率將大打折扣。Servlet程序的生命周期如圖2-17所示。

圖2-16 傳統Java程序的生命周期

圖2-17 Servlet程序的生命周期
在瀏覽器用戶1訪問Servlet程序時,Servlet字節碼文件將被加載到Tomcat服務器內存,Tomcat先調用構造方法實例化Servlet對象,然后調用init()方法初始化該Servlet對象,接著調用doGet()或者doPost()方法,服務第一個瀏覽器用戶。
其他瀏覽器用戶再次訪問該Servlet程序時,Tomcat將直接使用內存中的Servlet對象,服務其他瀏覽器用戶。
停止Tomcat服務后,內存中的Servlet對象被銷毀。
以ABCServlet為例,Servlet程序的生命周期可以簡要描述為:
ABCServlet第一次接收到GET請求: ABCServlet()→init()→doGet()
其他GET請求:→doGet()→doGet())→...→doGet()
停止Tomcat服務:→destroy()
說明
為了提高開發效率,Eclipse提供了一種機制。Tomcat啟動后,Eclipse能夠自動判斷Servlet源代碼是否更改。若更改,Eclipse會自動編譯Servlet源代碼,生成Servlet字節碼文件,并自動重啟Tomcat。
- C++面向對象程序設計(第三版)
- Java 開發從入門到精通(第2版)
- Android開發精要
- 編程卓越之道(卷3):軟件工程化
- Practical Game Design
- Java編程的邏輯
- C++ Fundamentals
- Go語言開發實戰(慕課版)
- Python Machine Learning Blueprints:Intuitive data projects you can relate to
- ASP.NET求職寶典
- Android移動應用項目化教程
- Ext JS 4 Plugin and Extension Development
- 軟硬件綜合系統軟件需求建模及可靠性綜合試驗、分析、評價技術
- C/C++代碼調試的藝術
- Learning TypeScript