测试Servlet生命周期例子程序
寫(xiě)一個(gè)類(lèi)TestLifeCycleServlet,生成構(gòu)造器TestLifeCycleServlet();重寫(xiě)HttpServlet的doGet();重寫(xiě)GenericServlet的destroy();? init();? 故意打亂順序,看后臺(tái)打印結(jié)果,看他們的執(zhí)行順序。
1 package servlet_01; 2 3 import java.io.IOException; 4 5 import javax.servlet.ServletConfig; 6 import javax.servlet.ServletException; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10 11 public class TestLifeCycleServlet extends HttpServlet{ 12 13 14 public void destroy() { 15 System.out.println("destroy"); 16 } 17 18 19 public void init(ServletConfig config) throws ServletException { //ServletConfig保存的是servlet的配置信息(web.xml里的) 20 System.out.println("init"); 21 } 22 23 24 public TestLifeCycleServlet() { 25 System.out.println("construstor"); 26 } 27 28 29 protected void doGet(HttpServletRequest request, HttpServletResponse response) 30 throws ServletException, IOException { 31 System.out.println("doGet"); 32 } 33 34 35 }部署到tomcat,訪(fǎng)問(wèn),然后刷新再訪(fǎng)問(wèn)一次。
可以看到,先調(diào)用構(gòu)造器,構(gòu)建出對(duì)象,然后是init();-->doGet();-->doGet();暫時(shí)還沒(méi)調(diào)destroy();兩個(gè)doGet();說(shuō)明不管你訪(fǎng)問(wèn)多少次,只構(gòu)建了一個(gè)對(duì)象,為你提供服務(wù)。J2EE的要求,Servlet就new一個(gè),(省內(nèi)存)。(有個(gè)SingleThreadModel接口,已經(jīng)廢棄了。如果你的Servlet實(shí)現(xiàn)了這個(gè)接口,每當(dāng)一個(gè)請(qǐng)求過(guò)來(lái),就new一個(gè)新對(duì)象。)在同一個(gè)server,同一個(gè)container里頭,只有一個(gè)servlet。init只執(zhí)行一次,第一次初始化的時(shí)候。當(dāng)webapps退出的時(shí)候,調(diào)用destroy();
總結(jié):
servlet生命周期
生命全過(guò)程:
1? 加載:ClassLoader把你的class load進(jìn)來(lái)。
2 實(shí)例化:new自己一個(gè)對(duì)象
3 初始化:調(diào)用init(ServletConfig)方法,(一般重寫(xiě)這個(gè)帶參的,就調(diào)用這個(gè))
4 處理請(qǐng)求:不斷地處理請(qǐng)求,一般是對(duì)外的service? (對(duì)于HttpServlet來(lái)說(shuō)就是doGet或者doPost)
5 退出服務(wù):調(diào)用destroy();
**只有一個(gè)對(duì)象對(duì)外提供服務(wù),再次訪(fǎng)問(wèn)的時(shí)候不會(huì)new重新的,不會(huì)調(diào)用init方法,不會(huì)的。
?
轉(zhuǎn)載于:https://www.cnblogs.com/lihaoyang/p/4550938.html
總結(jié)
以上是生活随笔為你收集整理的测试Servlet生命周期例子程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: H.264(MPEG-4 AVC)级别(
- 下一篇: hammer用法 jquery.hamm