通过转发功能是可以执行的,但是通过响应重定向为什么会报status:500的空指针异常错误

来源:2-6 自由编程

Logan_Huang

2019-05-06 22:34:05

HTML(图2)提交属性到MathIndex(图1),(MathIndex的映射是"/direct/mi"),之后是MathCompute(如图3),当我进行转发功能getRequestDispatcher结果成功显示。但是通过响应重定向为什么会是报错呢


http://img.mukewang.com/climg/5cd043c70001a31813030559.jpg

http://img.mukewang.com/climg/5cd043c70001690c07660303.jpg

http://img.mukewang.com/climg/5cd043c700019b2211690431.jpg

http://img.mukewang.com/climg/5cd045940001e94108270372.jpg

http://img.mukewang.com/climg/5cd04594000107df11320135.jpg


写回答

1回答

芝芝兰兰

2019-05-07

同学你好。根据异常提示,我们可以知道发生了空指针异常。有两个原因:

1、重定向会丢失掉request中的内容。

重定向是服务端发送给客户端一个重定向的临时响应头,这个响应头包含重定向之后的URL,客户端用新的URL重新向服务器发送一个请求。和直接在浏览器敲一个新的地址是一样的效果。所以request.getAttribute("intSum")得到的是null。

2、对于null的元素,不能强制转换成基本数据类型,否则会造成空指针异常。

这是因为java中,强制类型转换成int,是对要转换的Object,使用Object.intValue()得到的。也即是自动拆箱。所以如果这时Object为null,会产生空指针异常。

同学可以重温下2019版Java 零基础入门中的步骤三 2-8 基本数据类型和包装类之间的转换 课程。

如果解答了同学的疑问,望采纳~

祝学习愉快~


0

0 学习 · 9666 问题

查看课程