Servlet中使用init方法的注意事项
使用init(ServletConfig config)时必须先调用super.init(config)创建ServletConfig对象,因为父类的init(ServletConfig config)中对config进行赋值。
你既然重写了该方法,如果不进行赋值,config就是null,这时如果使用getServletContext则会报空指针异常,因为getServletContext这个方法的底层是this.getServletConfig().getServletContext(),既然config为null,自然空指针异常。
如果不想调用父类init方法初始化config,也可以直接使用无参的init()方法。
另外,ServletConfig只对当前Servlet有效,
而 ServletContext 是全局的,对应web.xml中的标签是context-param。
ServletConfig持有ServletContext对象的引用。