您好,登錄后才能下訂單哦!
本篇內容主要講解“Servlet的init注意點有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Servlet的init注意點有哪些”吧!
在Servlet的GenericServleta類中有兩個init()方法,兩個方法在使用的時候要注意:
如果我們直接通過實現Servlet接口來編寫一個Servlet類,就需要實現 Servlet接口中定義的5種方法,為了簡化Servlet的編寫,在javax.servlet包中,給我們提供了一個抽象的類 GenericServlet,它提供了除service()方法外的其他4種方法的簡單實現。GenericServlet類定義了一個通用的、不依賴于具體協議的Servlet,它實現了Servlet接口和ServletConfig接口。
如果我們要編寫一個通用的Servlet,只需要從GenericServlet類繼承,并實現其中的抽象方法service()。
GenericServlet類中,提供了兩種重載的init()方法 (Tomcat中的源代碼 ):
·public void init(ServletConfig config)throws ServletException{
this.config = config;
this.init();
}
·public void init()throws ServletException{
}
第一種init()方法是Servlet接口中init()方法的實現。這種方法中,首先將ServletConfig對象保存在一個transient實例變量中,然后調用第二種不帶參數的init()方法。
通常我們在編寫集成自GenericServlet的Servlet類時,只需重寫 第一種不帶參數的init() 方法就可以了。
如果覆蓋了第二種init()方法,那么應該在子類的該方法中,包含一句super.init(config) 代碼調用。( super.init(config)即 GenericServlet .init(config) ,即 this.config = config和 this.init()兩句代碼,如果沒有這兩句代碼,由于Servlet中有這么一句代碼:this.getServletConfig().getServletName(), getServletConfig()中的代碼是return config , 要是程序員改寫含參數的init方法時,要是忘了 super.init(config) ,那么 config為空 ,則 getServletName()為空 ,就會出現空指針異常 ,所以為了防止這個錯誤,程序員們一般改寫init()這個方法,注:Tomcat調用的是 init(ServletConfig config)這個方法。 )
init(servletconfig config)
this.config = config
init();
重寫必須得 super.init(config)
不然不能使用 this.getServletConfig
當然也就不能用 getInitParameter();
我們只需要重寫 init();
如:
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
super.init(config);
String num=config.getInitParameter("num");
System.out.println("初始化數為:"+num);
}
到此,相信大家對“Servlet的init注意點有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。