- PR -

JSPでのデバッグの方法?

投稿者投稿内容
ume
ベテラン
会議室デビュー日: 2001/09/19
投稿数: 55
投稿日時: 2001-10-03 11:21
またまたお世話になります。
JSPを使って開発を行っているのですが有効なデバッグの方法はないのでしょうか?
現在はブラウザ上のエラーメッセージをみて原因を探して
修正して動かしてみて・・という方法でやっています。
コマンドの間違いであればこれでも済むのですが
全体に関わるようなものだととても困難です。

みなさんはどのような方法でデバッグを行っていらっしゃるのでしょうか?
どの部分でエラーが起きているかを追跡する方法など
有効な手段がありましたらぜひ教えて下さい。
よろしくお願いします。

しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2001-10-03 15:17
根本的に、デバグが簡単にできないほどスクリプトレットを書いちゃ駄目です:)

JSP はビュー。だからせいぜいでるエラーは、コンパイルエラー、null pointer, class cast exception ぐらい。それ異常のロジカルな部分は Bean にするなりオブジェクトにするなりしておくのが吉でしょう。ちょっとタイピングの量が増えますが、そのほうがテストも整理も再利用もしやすくなるので、保険と思って MVC な作りをしたほうがいいのではないでしょうか。

どーしても JSP だけで、という ASP 流れのような希望があるのでしたら、VisualAge みたいな IDE を使えばなんとかなるかも。
---そして雑談

とはいえ、Model = Bean/EJB, View = JSP, Controller = Servlet というよくいわれる形は個人的にあまり好きではなかったり…。サーブレットで受けてJSPにフォワードというのが特に…。

やっぱこう、JSP で受けて JSP で返す、を基本に、taglib がんがんとかフィルタばんばんで、JSP からプログラムちっくな部分をあらゆる追い出したかったりして。

おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2001-10-03 15:36
しょむさんのいうとおり、
JSPというものは、表示方法やスタイルを決定付ける要素にしかすぎません。

本来、JSP中のJavaコードは、
・<jsp:useBean>で宣言したJavaBeansの中身の参照。
・TaglibなどのJSPカスタムタグ(必要なら...)。
だけで構成されるべきものです。

むしろ、効率のよいデバッグ方法を追求すべき要素は、Servlet&JavaBeansです。

もともと、JSPは、ASP(IIS)の対抗策ともいわれていますが、
だからといって、ASPと同じやり方でコーディングすればよいというわけではありません。

本題から外れてしまいますが、最近の開発事例では、
・ Servlet + XML + XSL
のような、MVCモデルも増えてきています。
こちらですと、JSPが不要になるだけでなく、再利用性の高いXMLを中間層で使用するため、
・ Servlet + JavaBeans + JSP
の開発モデルよりも、デバッグ作業はしやすくなるはずです。

[ メッセージ編集済み 編集者: 謎の白覆面 編集日時 2001-10-03 17:27 ]
ume
ベテラン
会議室デビュー日: 2001/09/19
投稿数: 55
投稿日時: 2001-10-03 17:33
ご回答ありがとうございます。
現在作成しているものについてもう少し詳しく説明させていただくと
JSPで出力するときに処理の結果によって表示を変えるために
JSP内にメソッドを持っています。
ソースコードがほとんど同じで一部値を変えるために変数を使っているのですが
あまりよい方法ではないのでしょうか?

それと、すこし話が外れてしまうのですが
ServletからJSPを呼び出して画面を出力するときに
正常に動くのだけど、ときどき画面に何も表示されない、ということがあります。
そのときのソースは
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=shift_jis" http-equiv=Content-Type></HEAD>
<BODY><XMP></XMP></BODY></HTML>
というものになっているのですが、
この原因としてはどういうことが考えられるのでしょうか?

たびたびすみませんがよろしくお願いします。
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2001-10-03 17:53
> 現在作成しているものについてもう少し詳しく説明させていただくと
> JSPで出力するときに処理の結果によって表示を変えるために
> JSP内にメソッドを持っています。
> ソースコードがほとんど同じで一部値を変えるために変数を使っているのですが
> あまりよい方法ではないのでしょうか?
>
表示スタイルを動的に決定するためのJavaソースは、
JSPに含まれて問題のないものです。
肝心なのは、表示スタイルと業務ロジックを
明確に分離しているかどうかなのですから・・・。

> それと、すこし話が外れてしまうのですが
> ServletからJSPを呼び出して画面を出力するときに
> 正常に動くのだけど、ときどき画面に何も表示されない、ということがあります。
> そのときのソースは
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
> <HTML><HEAD>
> <META content="text/html; charset=shift_jis" http-equiv=Content-Type></HEAD>
> <BODY><XMP></XMP></BODY></HTML>
> というものになっているのですが、
> この原因としてはどういうことが考えられるのでしょうか?
>
これって、実際に表示されたHTMLのソース...じゃないの...???
ume
ベテラン
会議室デビュー日: 2001/09/19
投稿数: 55
投稿日時: 2001-10-03 18:06
説明がわかりにくくてすみません。
servletからJSPを使用してブラウザに画面を出力した場合、正常に処理されると
<html>
<head><title>タイトル</title></head>
<body>
<form method="post">
<FONT color="blue">コメント</FONT> ・・・
といったソース(JSPで記述している)の画面が出力されるのですが、
ときどき何も表示されないことがあって
そのソースを見てみると前述のようになっている、ということです。
あのソースコードはどこからやってきたのでしょうか・・?

[ メッセージ編集済み 編集者: ume 編集日時 2001-10-03 18:11 ]
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2001-10-03 18:20
それはおそらく、JSPファイルが更新されていて、エンジンがJSPを変換してコンパイルしている間に、なにか変な動作がサーバかブラウザに起こっているだけではないでしょうか。

そこでリロードして再実行して正常な表示、動作が行なわれるのであれば、そのあたりの問題です。

おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2001-10-03 19:10
> ときどき何も表示されないことがあって
> そのソースを見てみると前述のようになっている、ということです。
> あのソースコードはどこからやってきたのでしょうか・・?
>
その空白ページは、何らかの例外が発行されたときにForwardされる
ErrorPageとかではないのですか。
もしそうであれば、そのエラー内容が、ログなどにDumpされるはずです。

スキルアップ/キャリアアップ(JOB@IT)