2016-10-10 9 views
-1

私はユーザープロファイルページを実装しようとしています。私は、Bean、サーブレット、および対応するJSPページを使用して実装しました。なぜNULLポインタ例外を受け取るのですか?

私は/プロファイル/ユーザ名を(アカウントは間違いなくデータベースに存在する)訪問しようとすると、私は自分のブラウザに表示され、次のエラーが表示されます。

exception 

org.apache.jasper.JasperException: An exception occurred processing JSP page /profile.jsp at line 87 

84:   <div class="container"> 
85:    <div class="row"> 
86:     <div class="col-lg-12 text-center user-profile"> 
87:      <h1>Welcome <%=profile.getUsername()%>!</h1> 
88:     </div> 
89:     <div class="col-sm-4 text-center"> 
90:      <div class="user-post" style="background-color: red"> 


Stacktrace: 
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:574) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 
    [PACKAGE].servlets.Profile.doGet(Profile.java:47) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:622) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 

root cause 

java.lang.NullPointerException 
    org.apache.jsp.profile_jsp._jspService(profile_jsp.java:218) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 
    [PACKAGE].servlets.Profile.doGet(Profile.java:47) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:622) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 

私はエラーがどこに行く(ラインサーブレットProfile.javaの47)それだけです:

rd.forward(request, response); 

私は他のサーブレットにそうであるように、私は正確にコードを使用していますが、それだけでは動作しません。

本当に明白なものがありませんか?前もって感謝します。

+2

あなたの抗議にもかかわらず、JVMを信じてください - ヌル参照があります。あなたが正しいと主張するのを止めれば、あなたはより早い進歩を遂げるでしょう。 JVMはあなたを迫害していません。あなたがそれを見つけるまで、デバッガでより慎重に進んでください。 – duffymo

+0

この 'rd.forward(request、response);行で例外が発生した場合、' rd'はnullです。 –

+0

私はサーブレットで 'JOptionPane'を使用して周りを包み込みたいと思っています... –

答えて

1

あなたは(削除答えに)コメント:私は完全なJSPページを追加したはずです

申し訳ありませんが、以下のように、私は上記のプロファイル宣言:

ProfileStore profile = (ProfileStore) session.getAttribute("Profile"); 

を....サーブレットコードの属性を次のように設定します。

request.setAttribute("Profile", profile); 

同じ「スコープ"属性を設定して取得するとき。フェッチしようとしているスコープに定義されていない属性をフェッチすると、nullが返されます。

+0

ああ、私は見ていますが、ここで同じ属性を設定していないのですか?属性の両方の名前は大文字の 'Profile'ですか、それともjspページにアクセスできない場合ですか? – James

+0

'session'と' request'は異なるスコープです。はい、両方のスコープはJSPでアクセス可能です。しかし、あるスコープに属性を入れて、それを他のスコープで探すと、それを見つけることはできません! –

+0

downvoteを説明してください。 –