// 获取servlet初始化参数 String enconding = this.getInitParameter("enconding"); System.out.println("servlet初始化参数:" + enconding);
今日在编写一个servlet类时,结果在运行的时候老是出现空指针异常,结果弄得很是焦做的说。java
type Exception reportweb
message apache
description The server encountered an internal error that prevented it from fulfilling this request.tomcat
exceptionwebsocket
java.lang.NullPointerException javax.servlet.GenericServlet.getInitParameter(GenericServlet.java:80) com.servlet.LoginServlet.doGet(LoginServlet.java:39) com.servlet.LoginServlet.doPost(LoginServlet.java:74) javax.servlet.http.HttpServlet.service(HttpServlet.java:648) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.36 logs.socket
super.init(config);
若是没有这一行代码,doGet() 和doPost()方法中出现的空指针异常将不会被处理而致使空指针异常。其实也能够发现init(ServletConfig config)方法是调用了父类的ide
public void init(ServletConfig config) throws ServletException { this.config = config; init(); } public void init() throws ServletException { }
而在这里其对异常作出了处理。因此,总结一下:若是创建一个类继承了HttpServlet类而且重写了该类的init()方法,那么必需要保留this
super.init(config);
这一行代码,不然会出现空指针异常。spa
以上仅为我的看法,若有失误,欢迎指出! ^ ^!
指针