J2EE之Servlet

我的認爲ServletJava開發中屬於最基礎也是很重要的一個知識點了今天就來簡單談談servletjava

1.如何開發一個servlet

步驟:web

1)編寫java類,繼承HttpServlettomcat

2)從新doGetdoPost方法服務器

3Servlet程序交給tomcat服務器運行!!微信

3.1 servlet程序的class碼拷貝到WEB-INF/classes目錄spa

3.2 web.xml文件中進行配置.net

Servlet生命週期

既然是說生命週期,那就有何時出生(類對象的建立),出生了幹嗎(調用什麼方法),何時死亡(銷燬)一說。之前的對象都是new Student(); stu.study();   stu=null;等等xml

Servlet生命週期由tomcat服務器控制。對象

 

Servlet四個重要的生命週期方法blog

構造方法:

建立servlet對象的時候調用。默認狀況下,第一次訪問servlet的時候建立servlet對象只調用1次。證實servlet對象在tomcat是單實例的。

init方法: 建立完servlet對象的時候調用。只調用1次。

service方法: 每次發出請求時調用。調用n次。

destroy方法: 銷燬servlet對象的時候調用。中止服務器或者從新部署web應用時銷燬servlet對象。只調用1次。

僞代碼:

Tomtcat內部代碼運行:

1)經過映射找到到servlet-class的內容,字符串: com.zqg.a_servlet.FirstServlet

2)經過反射構造FirstServlet對象

2.1 獲得字節碼對象

Class clazz = class.forName("com.zqg.a_servlet.FirstServlet");

2.2 調用無參數的構造方法來構造對象

Object obj = clazz.newInstance();     ---1.servlet的構造方法被調用

3)建立ServletConfig對象,經過反射調用init方法

3.1 獲得方法對象

Method m = clazz.getDeclareMethod("init",ServletConfig.class);

3.2 調用方法

m.invoke(obj,config);             --2.servletinit方法被調用

4)建立requestresponse對象,經過反射調用service方法

4.1 獲得方法對象

Methodm m =clazz.getDeclareMethod("service",HttpServletRequest.class,HttpServletResponse.class);

4.2 調用方法

m.invoke(obj,request,response);  --3.servletservice方法被調用

5)當tomcat服務器中止或web應用從新部署,經過反射調用destroy方法

5.1 獲得方法對象

Method m = clazz.getDeclareMethod("destroy",null);

5.2 調用方法

m.invoke(obj,null);            --4.servletdestroy方法被調用


本文分享自微信公衆號 - 微光點亮星辰(SandTower)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索