質問: strutsを使用したJSPで、フォームのbeanが見つからないときに ついての質問です。 フォームのbeanが見つからないとき、HTTPステータス500のエラー 画面に遷移する場合と、画面は表示されるパターンの2通りが 存在します。 画面が表示されるパターンは、HTMLがおかしくなってはいますが (テーブルを定義している場所など)HTTPステータス500には なりません。 以下がHTTPステータス500が表示されたときのエラー内容です。 exeption javax.servlet.ServletException: USER_null という名前のbeanが見つかりません。 org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:830) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:763) org.apache.jsp.jsp.ipv4.CtuR346_jsp._jspService(CtuR346_jsp.java:709) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:105) javax.servlet.http.HttpServlet.service(HttpServlet.java:860) 以下省略 root cause javax.servlet.jsp.JspException: USER_null という名前のbeanが見つかりません org.apache.struts.taglib.html.OptionsTag.getIterator(OptionsTag.java:368) org.apache.struts.taglib.html.OptionsTag.doEndTag(OptionsTag.java:188) org.apache.jsp.jsp.ipv4.CtuR346_jsp._jspService(CtuR346_jsp.java:549) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:105) javax.servlet.http.HttpServlet.service(HttpServlet.java:860) 以下省略 画面が表示されるパターンもログには上記と同様の JSPExeptionが出力されています。 HTTPステータス500エラーのときのみdoHandlePageExceptionが 発生しているのでしょうか? また、画面が表示されるJSPに定義されているJavaScriptを 削除したところ、HTTPステータス500の画面になりました。 HTTPステータス500はスクリプトのエラーによるものという ところまではネットで調べたのですが、実際にJavaScriptが JSPにどう影響を与えるているのかがわかりません。 なぜ画面が表示されるパターンの場合のその理由をご教授ください。 また、HTTPステータス500の画面が表示される理由は、 「フォームのbeanがないから」という理由で問題ないのかも 教えていただきたいです。 以上よろしくお願いします。
回答: JavaScriptのエラーによって、httpステータスが変わることはありえません。 サーバからクライアントにページが渡される際には、JavaScriptは実行どころか存在すらしていません。 JavaScriptは、サーバから単なる文字列の一部としてクライアントに取得され、クライアントで「この部分はJavaScript」と認識され、実行されます。 JavaScriptの「記述ミス」によって、JSPコンパイラが文字列処理/Java処理をうまく切り替えられない場合は、変わることがあり得ます。