Top > 課題

課題

  1. JPSコードを変更した場合にJSPのコンパイルが実施される条件はなにか?

検証)

ブラウザの第一画面を立ち上げた状態で第二画面のJSPファイルに変更を行う。

1.クラスのパッケージを変更してコンパイル
2.JSPファイルのuserBeanアクションのclassを1.で変更したパッケージを指定
3.第二画面を呼び出し
  →以下のようなエラーが発生


例外

org.apache.jasper.JasperException: Exception in JSP: /Login/LoginProcess.jsp:2

1: <%@ page contentType="text/html; charset=Windows-31J"%>

2: <jsp:useBean class="test.produst.golf.User" id="user" scope="session"/>

3: <%

4: String strUserName=request.getParameter("user_name");

5: String strPassword=request.getParameter("password");

Stacktrace:

	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

原因

java.lang.ClassCastException: produst.golf.User cannot be cast to test.produst.golf.User

	org.apache.jsp.Login.LoginProcess_jsp._jspService(org.apache.jsp.Login.LoginProcess_jsp:46)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

4.ブラウザを立ち上げなおすと正しく第二画面が表示される

  1. JSPコードのコンパイルのトリガーはなに?タイミングはいつ?
  2. そもそもJSPコードのコンパイルってどういうこと?何かが作られてる?

ちなみにJSPコード中に単に改行を入れてファイルを更新してみたけど、このときは問題なく第二画面が表示された。


リロード   新規 編集 凍結 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2008-03-02 (日) 22:33:27 (3938d)