init(ServletConfig) gets called when the servlet class is loaded. This may be the first time a client a calls it or when the application server is started, depending on <load-on-startup> tag in your web.xml file.
The default implmentation of init(ServletConfig) does some stuff and then calls init(). If I understand correctly, the init() in the HttpServlet base class doesn't actually do anything. It's sole purpose is to be overridden in subclasses so that init(ServletConfig) can call it.
If you have initialization to be done for your servlet, such as reading in configuration files, instantiating data structures, opening database connections, etc., override init().
[edit: added some italics] [ May 17, 2005: Message edited by: Ryan McGuire ]