- PR -

ControllerからBeanを呼び出すテクニックについて

1
投稿者投稿内容
獅子座
会議室デビュー日: 2001/12/06
投稿数: 6
投稿日時: 2001-12-06 11:22
JAVAをこれからはじめたいと思っています。
MVCモデルに添った形で作成しようと思っているのですが
サーバサイドにはDBを持たずにホスト処理した内容をサーバに渡し
表示及び入力のみをJAVAで行う予定です。
そこで質問なのですがMVCのCの部分で入力された内容によってどのbean(M部分)
を呼び出すかテーブルに持って操作できると聞いたのですが
具体的にどのような技法・CLASS・その他でそのテーブルは作成出来るのでしょうか?
本当にDBを持たずに使えるファイルにはどのような物があるのですか?
よろしくお願いします。
  
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2001-12-06 16:03
> JAVAをこれからはじめたいと思っています。
> MVCモデルに添った形で作成しようと思っているのですが
> サーバサイドにはDBを持たずにホスト処理した内容をサーバに渡し
> 表示及び入力のみをJAVAで行う予定です。
"サーバサイドにはDBを持たず"というのが、ちょっとひっかかりました。
WEBアプリケーションの開発にあたり、DBサーバを一切導入しないということですか???

> そこで質問なのですがMVCのCの部分で入力された内容によってどのbean(M部分)
> を呼び出すかテーブルに持って操作できると聞いたのですが
> 具体的にどのような技法・CLASS・その他でそのテーブルは作成出来るのでしょうか?
これを誰から、聞いたのですか???
"テーブルに持って操作できる"というのが、内容的にちょっとはっきりとしませんね。
この"テーブル"というのは、具体的にどのようなものを指しているんですか???
ふうた
大ベテラン
会議室デビュー日: 2001/08/23
投稿数: 198
お住まい・勤務地: 岡山
投稿日時: 2001-12-06 22:41
「テーブル」とおっしゃられているというのは、どういったものを想像されているのでしょうか?プログラムの中で持っている文字列と呼び出すBeanの対応表と言う意味でしょうか?

そうであれば、Hashtable などをつかって、
キー:入力されると予想される文字列
値:呼び出すBean
といったところでしょうか?
(上は入力がコンボボックスなど、決まった文字列のみという場合ですが、投稿の内容からどちらにしてもある程度の決まった入力だと思われるので普通の入力ボックスでも考え方は同じようなことができると思います。)

あとは、これらのファイルをPropertiesファイルなどの外部ファイルに持っておけばいうことなしでしょう。
獅子座
会議室デビュー日: 2001/12/06
投稿数: 6
投稿日時: 2001-12-07 11:42
返答有難うございます。
テーブルとは対比表のイメージで考えています。
キーを設定しキーに対応したBeanやJSPを呼び出したいのです。
Hashtableは毎回テーブルを作成する必要があるように思っていたので
一度対比表を作成してしまえば後々すぐ使えるほうが良いのですが
こんな場合は、フリーのSQLDBを使うほうが良いのでしょうか

使用イメージはホスト処理したデータを伝文形式で受取りその伝文の内容により
Beanの呼び出しを変えたりBeanから帰ってきた内容でJSPの呼び出しを
変えたりしたいのです。MVCのContlol処理で使いたいのです。
よろしくお願いします。 初心者で質問もうまく出来ていませんがよろしくお願いします。
ふうた
大ベテラン
会議室デビュー日: 2001/08/23
投稿数: 198
お住まい・勤務地: 岡山
投稿日時: 2001-12-10 01:33
特に対応表をRDBに持つ必要はないと思います。

デザインパターンでいうところの Singleton パターンにして、そのサーブレットのロード時に作った対応表(Hashtable)を使いまわしていけばいいです。2回目以降のアクセスは(その都度対応表を作らず)それを使うだけなのでご期待の動きになり、パフォーマンスも毎回RDBに問い合わせに行くよりはよいと思います。

対応表がオンラインで変更されるというのであればRDBになると思いますが、そうでないのであればプロパティファイルでもっておいて、上記のように一回のみ対応表を作りそれを利用するのがよいと思います。

Singleton パターンについては、デザインパターンについてかかれている書籍などをご参考にしてください。



[ メッセージ編集済み 編集者: ふうた 編集日時 2001-12-10 01:37 ]
獅子座
会議室デビュー日: 2001/12/06
投稿数: 6
投稿日時: 2001-12-12 17:15
みなさんどうも有難うございました。
がんばってみます
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2001-12-13 05:14
Challange the simplest solution!

controller.jsp
コード:
<%\!

private static java\.util\.PropertyResourceBundle control \= null;
private final static String DEFAULT\="/control-default\.jsp";
private final static String ACTIONPARAM\="ACT";
private final static String RELOADPARAM\="reload";

synchronized private void loadControl\(\) \{
control \= null;
try \{
control \= new
java\.util\.PropertyResourceBundle\(
getServletContext\(\)
\.getResourceAsStream\("/WEB-INF/control\.properties"\)\);
\} catch \(Exception ex\) \{ ex\.printStackTrace\(\); \}
\}

%>
<%
if \( control \=\= null \) \{ loadControl\(\); \}
String forward \= null;
try \{
%><jsp\:forward page\="<%\=
control\.getString\(request\.getParameter\(ACTIONPARAM\)\)
%>" /><%
\} catch \(Exception ex\) \{
try \{
if \( request\.getParameter\(RELOADPARAM\) \!\= null \) \{
loadControl\(\);
\}
%><jsp\:forward page\="<%\= DEFAULT %>" /><%
\} catch \(Exception ex2\) \{ ex2\.printStackTrace\(\); \}
\}
%>



WEB-INF/control.properties
コード:
reload\=control-reload\.jsp

1\=control-1\.jsp
2\=control-2\.jsp



control-default.jsp
コード:
<html><body>

<a href\="controller\.jsp\?ACT\=1">1</a><br>
<a href\="controller\.jsp\?ACT\=2">2</a><br>
<a href\="controller\.jsp\?ACT\=reload">reload</a>
</body></html>


こんなもんでしょかね。



[ メッセージ編集済み 編集者: しょむ 編集日時 2001-12-13 05:52 ]
1

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