• ベストアンサー

【初心者質問】beanを使うときにパッケージ化しないといけないのか?

Linux(CentOS)をtelnetで操作して Tomcat+Apache+JDKでWebアプリケーションを作成しています。 初心者です。 特に困っていない(動作できた)のですが なぜなのか理解できないので、後学のためにご教示くださいませ。 jspでフォームに入力した情報を サーブレットで取得し、その情報をDB(Postgresql)にINSERT 登録結果画面としてjspで登録した情報を表示 ということをしたかったのですが、 その際、フォーム入力情報をbeanに入れて beanオブジェクトをrequest.setAttributeしたんですが jspから取得(getProperty)できませんでした。 最終的に package beans;としてインポートすることで解決できたんですが なぜできたのか良く分かりません。 packageは煩雑にならないようクラスファイルのディレクトリ構成を 指定するものだ という認識だったのですが、 今回のようなケースでは必須事項なのでしょうか? そうならば、なぜなのでしょうか? # Servlet.classとBean.classはもともとclassesディレクトリにいたのを   classes/beansディレクトリにしたことでうまくいくというのが解せません   classesディレクトリにあるならいいじゃないかと思うわけです。。

質問者が選んだベストアンサー

  • ベストアンサー
noname#94983
noname#94983
回答No.1

Java 1.4以降だったと思うが、デフォルトパッケージは、他のパッケージないから呼び出せない、という仕様になっている。デフォルトパッケージは、小規模な開発あるいは一時的な利用にとどめ、正式な開発では必ずパッケージ下に配置する方向にしたいんだろうな。 JSPは、内部的にサーブレットにコンパイルされ実行される(当然、何らかのパッケージに配置される)ので、JSPからはデフォルトパッケージ内のクラスは呼び出せないことになる。従って、必ず、何らかのパッケージ下にBeanは置かなければいけないことになる。

その他の回答 (1)

回答No.2

それって、org.apache.jasper.JasperExceptionにより、JSPのクラスをコンパイルできない、とかっていう奴ですよね? >今回のようなケースでは必須事項なのでしょうか? 必須です。 >そうならば、なぜなのでしょうか? 仕様だからです。 ちなみに、英文に違和感の無い方であれば、以下の掲示板サイトにて紹介されている米国Sunのバグレポートの方も参考にしてみてください。 Top > @IT会議室 > Java Solution 会議室 > JSPでBeanの中身を使用するには… http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5750&forum=12&start=8

関連するQ&A