jsp只是代码抛出一个nullPointerException

时间:2012-02-13 07:26:50

标签: jsp

这是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日志中提供了异常的完整堆栈跟踪及其根本原因。

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

5 个答案:

答案 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。