在tomcat,init方法体中,显示nullpointer错误:
原因:
调用了有参的init方法,
进入源码查看:
由于调用的是有参数的init方法,所以需要向上传递参数
而如果是调用的无参数的init方法,则不需要
更改后:
该方法保存了这个config对象的一个引用,以备将来使用。那么,一个servlet是怎样利用这个保存的引用的呢?是通过自身唤醒方法。在执行中,GenericServlet类通过使用保存的引用,自身执行ServletConfig接口。换个说法,就是在调用super.init(config)语句后,一个servlet可以直接唤醒它自己的getInitParameter()方法。
如果没有调用super.init(config)语句,任何使用GenericServlet的getInitParameter()方法的行为或者是调用ServletConfig的方法都将会抛出NullPointerException的异常。所以每一个servlet的init
()方法的第一个语句都应该是super.init(config)。只有在一种情况下可以不这样做,如果这个servlet直接执行javax.servlet.Servlet接口,这种情况下则没有super.init().