这是test.jsp
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%
String str = request.getParameter("str");
if (str.equals("play")) {
}
%>
错误:
输入例外报告
消息
description服务器遇到内部错误(),导致无法完成此请求。
例外
org.apache.jasper.JasperException:java.lang.NullPointerException
root cause java.lang.NullPointerException
注意GlassFish Server Open Source Edition 3.1.1日志中提供了异常的完整堆栈跟踪及其根本原因。
上面的代码运行时有错误,上面的代码有什么问题?
答案 0 :(得分:1)
将if (str.equals("play"))
更改为if (str!=null && str.equals("play"))
您的请求参数似乎为null。
答案 1 :(得分:1)
在jsp中使用scriptlet是非常糟糕的编程习惯。
对于您遇到的问题,我认为找不到参数。 检查是否正在为请求发送参数。
答案 2 :(得分:0)
另一种方法。如果您有常量字符串,例如在你的情况下,“玩”比较变量而不是你正在做的事情。即。
if ( ("play").equals(str))
{
}
这样你就不会得到Null Pointer异常,因为String不等于null(如果str为null)。在你的情况下,因为str是null所以null.equals给你空指针异常。
同时尝试在if语句之前打印出str的值,以查看将要发生的值。
out.println("Str:"+str);
希望这有帮助。
答案 3 :(得分:0)
"str"
没有请求参数,因此str变量为null
。正如其他人建议您可以使用此"play".equals(str);
。
答案 4 :(得分:0)
请调试.java文件,从中获取“str”值。 并检查您是否在该位置获得空值。 如果是,则这就是它抛出NULL指针异常的原因。 Str!= NULL无法解决您的问题,因为您无法获得所需的输出&amp;导致你更加困惑。 PS:请避免在JSP中使用scriptlet。