しいしせねっと Amazon.co.jpアソシエイト
[Java] [Webアプリケーション] [Jakarta] [JNDI]

フレームワーク Struts

必要な基礎知識と環境

どんなぢゃ・・・・

モデル・ビュー・コントローラといったモデルを分けてつくる場合のフレームワーク的なもの。
JSP/Servlet のServlet 部分を拡張するような感じか。あとは、JSP用のタグライブラリ等も完備?

とりあえず、Servlet単体でフォームを処理して終わりではなく、BASICやC言語の関数のように随時実行型にしてしまうもの、とでも理解すればいいのか? サブルーチンは作れるかどうかしらないけど。

そうするとイベント云々型とは、また違うのかな。

Servlet/JSPとの違いいろいろ

Servletマッピングの違い
web.xml に記述するServletのマッピングを struts-config.xml に記述するようになっただけとも言えます。

それだけなら何でもないのですが、それに加えてFORMから送信されたデータを半自動でBean的な器に格納するという機能があるようです。これは、ちょっといい機能かもしれませんね。でもBeanじゃないのかな?

その次に、MVCモデルでいうところのServlet(Control)とJSP(View)の対応が固定的ではない、ということでしょうか。これもstruts-config.xmlで記述します。web.xmlに同じようなパラメータ用意すればいいだけのようにも思えますが、まぁ、そんなところです。
それから、いろいろ便利なTAGライブラリが用意されています。

JDBCのDataSourceが使える、らしいですが、これはTomcatだけでもJNDIを使ったJ2EEの方法で使えます。Strutsでは、J2EEサーバのJNDIの設定だけでなく、Strutsの定義ファイルでJNDIを登録することができます。どっちがいいんでしょうかね。

なんとなくつかみどころが難しい

J2EEのMVCとStrutsのMVC
MVCとかデータとロジックの分離とか、よくわかりませんね・・・。こんなですかね。

J2EE(EJB)とStrutsのMVC比較
  Model View Control
データ/永続データ ビジネスロジック? 表示 制御?
J2EE的 JavaBeans/エンティティBean
セッションBean JSP Servlet
web.xml
Struts的 JavaBeans?
ActionForm?/JDBC
Action JSP ActionServlet
struts-conf.xml

Modelというのが、EJBではビジネスロジックとデータにわかれているのですが、Strutsではどうなってる?のだか。
セッションBean的なものも、エンティティBean的なものもないような気がします。Actionクラスはセッション管理はせずにビジネスロジックだけを実装します。たぶん。セッション管理はServletコンテナにおまかせですかね。エンティティBeanのようなものもないので、JDBCを直でつつくということをActionクラスと分離できないのかな?

Modelに対応する部分は、ActionからEJB使えばいいのか・・・。

使うべき場面/使わなくてもいい場面

どういうところで使うのが効果的なのか、というのもいろいろあるようです。EJBと共に使えるかどうか。まぁ、使えるのでしょうが・・・。

Strutsの使い方がわかってしまえば、若干の機能を用意することで、Strutsではなくても同じことが簡単にできるように思うのですが・・・。

インストール

Strutsは、Webコンポーネントに含める形でしか利用できないため、インストールというほどの作業は特にないですね。

struts 1.02や1.1を解凍する

Struts 1.1のREADMEの中途半端な訳
これのとおりやらなくても・・・と。

webapps/struts-blank.war が最小限のセットです。これを基本にして編集することで、いろいろできます。

lib/内にあるファイルなどもこの中に含まれています。

*.do にアクションサーブレットを割り当てるという方法は、アプリケーション設計ガイドのBluePrintsでも出てくる形のようです。

参考

Get Thunderbird

Copyright (C) 2003  おこめ@しいしせねっと