在Servlet的GenericServleta類中有兩個init()方法,兩個方法在使用的時候要注意:
如果我們直接通過實現Servlet接口來編寫一個Servlet類,就需要實現 Servlet接口中定義的5中方法,爲了簡化Servlet的編寫,在javax.servlet包中,給我們提供了一個抽象的類 GenericServlet,它提供了除service()方法外的其他4種方法的簡單實現。GenericServlet類定義了一個通用的、不依賴於具體協議的Servlet,它實現了Servlet接口和ServletConfig接口。
如果我們要編寫一個通用的Servlet,只需要從GenericServlet類繼承,並實現其中的抽象方法service()。
GenericServlet類中,提供了兩種重載的init()方法:
·public void init(ServletConfig config)throws ServletException
·public void init()throws ServletException
第一種init()方法是Servlet接口中init()方法的實現。這種方法中,首先將ServletConfig對象保存在一個transient實例變量中,然後調用第二種不帶參數的init()方法。
通常我們在編寫集成自GenericServlet的Servlet類時,只需重寫第一種不帶參數的init()方法就可以了。如果覆蓋了第一種init()方法,那麼應該在子類的該方法中,包含一句super.init(config)代碼調用。