1. 程式人生 > >java.lang.NullPointerException at javax.servlet.GenericServlet.getServletContext

java.lang.NullPointerException at javax.servlet.GenericServlet.getServletContext

轉自:http://www.cnblogs.com/xdp-gacl/p/4005791.html
在Servlet使用getServletContext()獲取ServletContext物件出現java.lang.NullPointerException(空指標)異常的解決辦法
  今天遇到了一個在servlet的service方法中獲取ServletContext物件出現java.lang.NullPointerException(空指標)異常,程式碼如下:

//獲取ServletContext物件
ServletContext servletContext = this.getServletContext();
  這個問題很奇怪,也是第一次遇到,因為以前在servlet的doGet/doPost方法中要獲取ServletContext物件時都是這樣寫的,也沒有出現過java.lang.NullPointerException(空指標)異常,上網查了一下出現這個異常的原因:原來是我重寫了init(ServletConfig)方法,但重寫的init方法內部沒有呼叫super.init(config);就是這導致了錯誤!父類的 init(ServletConfig)有處理獲取ServletContext物件的引用,在doGet/doPost/service方法方法中才能夠通過 getServletContext()方法獲取到SeverletContext物件!重寫了Servlet的init方法後一定要記得呼叫父類的init方法,否則在service/doGet/doPost方法中使用getServletContext()方法獲取ServletContext物件時就會出現java.lang.NullPointerException異常

public void init(ServletConfig config) throws ServletException{
//重寫了Servlet的init方法後一定要記得呼叫父類的init方法,否則在service/doGet/doPost方法中使用getServletContext()方法獲取ServletContext物件時就會出現java.lang.NullPointerException異常
  super.init(config);
}