2012-02-13 18 views
0

を投げJSPなtest.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が完全な例外のスタックトレースとその根本原因は、GlassFishアプリケーションサーバーで提供されてい

root cause java.lang.NullPointerException 

ノート3.1.1ログ

上記のコードにはエラーがありますが、上記のコードの問題は何ですか?

+0

str!=あなたのifループにnull。 –

答えて

1

変更if (str.equals("play"))

if (str!=null && str.equals("play"))へのあなたのリクエストパラメータは、それが思わnullです。

1

jspでスクリプトレットを持つことはプログラミングの面で非常に悪いことです。

あなたが直面している問題については、私はパラメータが見つからないと思いますの要求に対してパラメータが送信されているかどうかを確認します。

0

これを行う別の方法です。あなたが定数の文字列を持っている場合。あなたのケースでは、あなたがやっていることよりむしろ変数を "再生"してください。つまり

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

} 

このように、文字列がnull(strがnullの場合)ではないため、Null Pointer例外が発生しません。あなたのケースでは、strがnullなのでnull.equalsはあなたにnullポインタ例外を与えています。

また、次のようなif文の前にstrの値を出力して、どのような値が来るのかを確認してください。

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

これが役立ちます。

0

"str"のリクエストパラメータがないため、str変数はnullです。他の人が示唆しているように、これは"play".equals(str);を使用するかもしれません。

0

"str"の値を取得している場所から.javaファイルをデバッグしてください。 その位置にヌルを取得しているかどうかを確認してください。 もしそうなら、それはNULLポインタ例外をスローしている理由です。 希望の出力を得られないので、Str!= NULLはあなたの問題を解決しません&あなたの混乱につながります。 PS:JSPでスクリプトレットを使用しないでください。

関連する問題