2012-02-13 68 views
0

这里是test.jsp的jsp中简单地代码抛出一个NullPointerException

<%@ page import="java.util.*" %> 
<%@ page import="java.io.*" %> 
<% 
    String str = request.getParameter("str"); 
    if (str.equals("play")) { 
    }     
%> 

错误:

类型异常报告

消息

descriptionThe服务器遇到内部错误()这阻止了它履行这一要求。

例外

org.apache.jasper.JasperException:显示java.lang.NullPointerException

root cause java.lang.NullPointerException 

注意异常的完整堆栈跟踪和其根源在GlassFish应用服务器版本也可3.1.1日志。

上面的代码有错误,如果运行,上面的代码有什么问题?

+0

Add str!=你的if循环为null。 – 2012-02-13 07:28:48

回答

1

变化if (str.equals("play"))if (str!=null && str.equals("play"))

您的请求参数为null,它似乎。

1

使用jsp编写脚本是非常糟糕的编程习惯。

对于您面临的问题,我认为参数未找到检查参数是否正在发送请求

0

另一种方法来做到这一点。如果你有不变的字符串在你的情况“玩”比较它的变量,而不是你在做什么。即

if (("play").equals(str)) 
{ 

} 

这样,你不会得到空指针异常,因为字符串不等于空(如果str为null)。在你的情况下,因为str是null,所以null.equals给你空指针异常。

还试图打印出str之前的if语句的值,看看下面的语句,看看会发生什么值。

out.println("Str:"+str); 

希望这会有所帮助。

0

"str"没有请求参数,因此str变量为null。正如其他人建议你可以使用这个"play".equals(str);

0

请从您从中获取“str”值的位置调试.java文件。 然后检查您是否在该位置出现null。 如果是,那么这就是为什么它会抛出一个NULL指针异常。 Str!= NULL不会解决您的问题,因为您无法获得所需的输出&会导致更多混淆。 PS:请避免在JSP中使用scriptlet。

相关问题