我的認爲Servlet在Java開發中屬於最基礎也是很重要的一個知識點了,今天就來簡單談談servlet。java
1.如何開發一個servlet
步驟:web
1)編寫java類,繼承HttpServlet類tomcat
2)從新doGet和doPost方法服務器
3)Servlet程序交給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.servlet的init方法被調用
4)建立request,response對象,經過反射調用service方法
4.1 獲得方法對象
Methodm m =clazz.getDeclareMethod("service",HttpServletRequest.class,HttpServletResponse.class);
4.2 調用方法
m.invoke(obj,request,response); --3.servlet的service方法被調用
5)當tomcat服務器中止或web應用從新部署,經過反射調用destroy方法
5.1 獲得方法對象
Method m = clazz.getDeclareMethod("destroy",null);
5.2 調用方法
m.invoke(obj,null); --4.servlet的destroy方法被調用
本文分享自微信公衆號 - 微光點亮星辰(SandTower)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。