eclipse如何显示工具栏,eclie中的工具栏是非常有用的,但是有时候会被隐藏掉了。如何在eclie中显示工具栏呢?下面小编给大家分享一下。......
2023-03-17 274 ECLIPSE
在开发的时候,使用MVC模式,用到jsp作为v层展示,在应用的时候发现了空指针异常Caused by: java.lang.NullPointerException,下面分析一下这个异常怎么快速处理
先创建一个Dynamic Web Project名为jspnpe,其中npe为NullPointerException简称,可以知道这个项目是用来演示jsp的空指针异常的。
注意:新建的时候,直接点Finish,使用默认配置即可,这里默认你已经配置好开发环境了,配置环境部署本文重点。
我们新建一个index.jsp,方法:右键WebContent->New->JSP File,
名称改为index.jsp然后点Finish即可
我们写一句可以触发空指针异常的代码:
%=session.getAttribute("userLogin").toString()%>
发布运行后,访问
http://localhost:8080/jspnpe
可以看到页面上已经有了空指针异常的提示了
java.lang.NullPointerException
org.apache.jsp.index_jsp._jspService(index_jsp.java:118)
这里是非常简单的JSP页面,所以会有提示在哪一行报空指针异常:
org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 10
这里是精确提示你index.jsp在第10行报空指针异常,而且第10行代码也已给出:
10: %=session.getAttribute("userLogin").toString()%>
但是在实际项目中,比如我使用SSH开发的,并没有提示的那么精确,因此需要进行第二步的定位空指针,页面上给出了
java.lang.NullPointerException
org.apache.jsp.index_jsp._jspService(index_jsp.java:118)
就是这个118行,这个提示在使用框架的时候也会出现,不会被隐藏,
重点就是找到这个index_jsp.java:118在哪里
咋一看这个包org.apache.jsp.index_jsp._jspService,以为是apache的官方源码包,其实并不是,而是我们的代码被编译后,默认生成的,
位置就在Tomcat的位置下:apache-tomcat-8.0.30workCatalinalocalhostjspnpeorgapachejspindex_jsp.java,只要打开这个文件,找118行,就能找出哪一个代码引发异常,然后就可以修改了
打开index_jsp.java看到118行的代码:
out.print(session.getAttribute("userLogin").toString());
正是符合了我们的预期,因为这段代码会导致空指针,
修改也很简单,因为session变量里面并没有保存userLogin属性,
因此session.getAttribute("userLogin")肯定是空的,
然后调用toString()方法必然会引发空指针异常
修复方法是在调用toString()方法前判断session.getAttribute("userLogin")不为空即可。
本文完,谢谢阅读。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章
eclipse如何显示工具栏,eclie中的工具栏是非常有用的,但是有时候会被隐藏掉了。如何在eclie中显示工具栏呢?下面小编给大家分享一下。......
2023-03-17 274 ECLIPSE
Eclipse详细设置护眼背景色和字体颜色并导出,Eclie是一款码农们喜闻乐见的集成开发平台,但是其默认的主题和惨白的背景色实在是太刺激眼球了。下面,将给大家详细介绍如何设置成护眼主题的方法,也做个......
2023-03-17 607 ECLIPSE
android环境搭建,随着adroidtudio的逐步完善,adroid推出的adroidtudio逐步走上了历史的舞台,adtudle逐步退出,就adroid开发而言,目前主要是两大开发工具:①基......
2023-03-17 618 ECLIPSE