java servlet .do,在servlet中使用doGet()或doPost()方法出现空指针异常

// 获取servlet初始化参数

String enconding = this.getInitParameter("enconding");

System.out.println("servlet初始化参数:" + enconding);

今日在编写一个servlet类时,结果在运行的时候总是出现空指针异常,结果弄得非常焦作的说。

type Exception report

message

description The server encountered an internal error that prevented it from fulfilling this request.

exceptionjava.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.

最后进过反复检查并通过查询资料才发现,自己在建立一个继承HttpServlet类时,重写了该类的init()方法,但是重写该方法后并没有保留super.init(config);

如果没有这一行代码,doGet() 和doPost()方法中出现的空指针异常将不会被处理而导致空指针异常。其实也可以发现init(ServletConfig config)方法是调用了父类的public void init(ServletConfig config) throws ServletException

{

this.config = config;

init();

}

public void init() throws ServletException

{

}

而在这里其对异常做出了处理。所以,总结一下:如果建立一个类继承了HttpServlet类并且重写了该类的init()方法,那么必须要保留super.init(config);

这一行代码,否则会出现空指针异常。

以上仅为个人见解,如有失误,欢迎指出! ^ ^!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值