目次
監訳者まえがき
まえがき
1章 はじめに 1
1.1 Webの簡単な歴史
1.2 Javaサーブレットとは
1.3 JSP(JavaServer Page)
1.4 JSP Model 1とModel 2のアーキテクチャ
1.5 MVCの重要性
1.5.1 MVCのモデル
1.5.2 MVCのビュー
1.5.3 MVCのコントローラ
1.6 フレームワークとは
1.7 Strutsフレームワークの作成
1.7.1 Strutsプロジェクトへの貢献
1.8 Strutsの代替となるフレームワーク
1.8.1 独自フレームワークの構築
1.8.2 Barracuda
1.8.3 Cocoon
1.8.4 Expresso
1.8.5 Freemarker、Velocity、WebMacro
1.8.6 Maverick
1.8.7 SiteMesh
1.8.8 Jakarta Turbine
1.8.9 WebWork
1.8.10 JavaServer Faces
2章 Web層の内部
2.1 アーキテクチャの概略
2.1.1 クライアント層
2.1.2 Web層
2.1.3 中間層
2.1.4 EIS層
2.1.5 Strutsの適合個所
2.2 HTTPリクエスト/レスポンスフェーズ
2.2.1 HTTPリクエスト
2.2.2 HTTPレスポンス
2.2.3 HTTPとHTTPS
2.3 Strutsとスコープ
2.3.1 リクエストスコープ
2.3.2 セッションスコープ
2.3.3 アプリケーションスコープ
2.3.4 ページスコープ
2.4 URLパラメタの使用
2.5 フォワードとリダイレクト
2.5.1 リダイレクトの使用
2.5.2 フォワードの使用
2.5.3 Strutsに適しているのはどちらか
3章 Strutsフレームワークの概要
3.1 銀行口座の例
3.2 全体像の把握
3.2.1 Strutsのコンポーネントパッケージ
3.3 Strutsコントローラのコンポーネント
3.3.1 StrutsのActionServlet
3.3.2 StrutsのActionクラス
3.3.3 アクションのマッピング
3.3.4 次のビューの決定
3.4 Strutsのモデルコンポーネント
3.5 Strutsのビューコンポーネント
3.5.1 StrutsのActionFormの利用
3.5.2 プレゼンテーションでのJSPの使用
3.5.3 カスタムタグライブラリの使用
3.5.4 メッセージリソースバンドルの使用
3.6 マルチアプリケーションサポート
3.7 まとめ
4章 Strutsアプリケーションの設定
4.1 Storefrontアプリケーション
4.2 Webアプリケーションとは
4.2.1 Webアプリケーションの要素
4.3 Webアプリケーションのディレクトリ構造
4.3.1 WARファイル
4.4 Webアプリケーションの配置記述子
4.4.1 Webアプリケーションの配置記述子のDTD
4.5 Struts用のweb.xmlファイルの設定
4.5.1 ActionServletのマッピング
4.5.2 複数のアプリケーションモジュールの指定
4.5.3 初期化パラメタの宣言
4.5.4 タグライブラリの設定
4.5.5 Welcomeファイルリストの設定
4.5.6 web.xmlでのエラー処理設定
4.6 Struts設定ファイル
4.6.1 複数のアプリケーションモジュールの設定
4.7 org.apache.struts.configパッケージ
4.7.1 ApplicationConfigクラス
4.7.2 Struts設定DTD
4.7.3 完全なstruts-config.xmlファイル
4.7.4 複数のアプリケーションモジュールの使用
4.7.5 DOCTYPE要素の指定
4.8 Digesterコンポーネント
4.9 Struts Consoleアプリケーション
4.10 設定ファイルのリロード
5章 Strutsのコントローラコンポーネント
5.1 コントローラメカニズム
5.1.1 ActionServletクラス
5.1.2 RequestProcessorクラス
5.1.3 Actionクラス
5.1.4 マルチスレッド対応のActionクラスの作成
5.1.5 ビジネスロジックとActionクラス
5.1.6 事前構築されたStruts Actionの使用
5.2 ユーティリティクラス
5.2.1 RequestUtilsクラス
5.2.2 ResponseUtilsクラス
5.2.3 Commons BeanUtilsパッケージ
5.2.4 Commons Collectionsパッケージ
5.2.5 Actionクラスのセキュリティ
6章 Strutsのモデルコンポーネント
6.1 MVCのM
6.1.1 モデルの種類
6.2 ビジネスオブジェクトとは
6.2.1 ビジネスオブジェクトの要件
6.2.2 ビジネスオブジェクトの重要性
6.3 永続化
6.3.1 ビジネスオブジェクトの永続化
6.3.2 オブジェクトのリレーショナルモデルへの格納
6.4 Strutsがモデルに提供する内容
6.5 Storefrontモデルの作成
6.5.1 リレーショナルデータベースへのアクセス
6.5.2 Storefrontビジネスオブジェクトの作成
6.5.3 Storefrontのデータモデル
6.5.4 ビジネスオブジェクトのデータベースへのマッピング
6.5.5 ORMフレームワーク
6.5.6 Storefrontの永続化フレームワーク
6.5.7 ビジネスデリゲートとDAOパターンの適用
6.6 まとめ
7章 Strutsのビューコンポーネント
7.1 ビューとは
7.1.1 Strutsフレームワーク内のビューの使用
7.1.2 ビューコンポーネント内でのJavaBeanの使用
7.2 ActionFormとは
7.2.1 ActionFormとスコープ
7.2.2 ActionFormのライフサイクル
7.2.3 ActionFormの作成
7.2.4 Struts設定ファイルでのActionFormの設定
7.2.5 ActionでのActionFormの使用
7.2.6 ActionFormプロパティの文字列型宣言
7.2.7 複数ページでのActionFormの使用
7.3 ActionErrorsの使用
7.3.1 ActionMessageクラス
7.3.2 ActionクラスでのActionErrorsの生成
7.4 プレゼンテーション検証の実行
7.5 DynaActionFormクラスの使用
7.5.1 DynaActionFormの設定
7.5.2 DynaActionFormでの検証の実行
7.6 JSFの展望
7.6.1 JSFとStrutsとの関係
8章 JSPのカスタムタグライブラリ
8.1 カスタムタグの概略
8.1.1 タグとは
8.1.2 JSPのカスタムタグとは
8.1.3 タグライブラリとは
8.2 Strutsに含まれるタグライブラリ
8.2.1 Strutsアプリケーションでのタグライブラリの使用
8.3 StrtusタグでのJavaBeanの使用
8.3.1 シンプルなプロパティへのアクセス
8.3.2 ネストされたプロパティへのアクセス
8.3.3 インデックス化されたプロパティへのアクセス
8.4 StrutsのHTMLタグ
8.4.1 htmlタグ
8.4.2 baseタグ
8.4.3 formタグ
8.4.4 複数のformタグの使用
8.4.5 buttonとcancelタグ
8.4.6 checkboxタグ
8.4.7 messagesとerrorsタグ
8.4.8 JavaScriptのイベントハンドラ
8.4.9 HTMLのナビゲーション属性
8.5 Logicタグ
8.5.1 値比較
8.5.2 部分文字列比較
8.5.3 リダイレクトとフォワード
8.5.4 コレクションユーティリティ
8.5.5 メッセージとエラー
8.6 Beanタグ
8.6.1 defineタグ
8.6.2 headerタグ
8.6.3 includeタグ
8.6.4 messageタグ
8.6.5 parameterタグ
8.6.6 resourceタグ
8.6.7 writeタグ
8.7 Templateタグ
8.8 Nestedタグ
8.9 他の有用なタグライブラリ
8.9.1 JakartaのTaglibsプロジェクト
8.9.2 JSPTags.com
8.10 JSTL(JSP標準タグライブラリ)
8.10.1 JSTLのコアタグ
8.10.2 JSTLの国際化タグ
8.10.3 JSTLのXMLタグ
8.10.4 JSTLのSQLタグ
8.10.5 新しい式言語
8.10.6 JSTLの要件
8.10.7 JSTLとStruts
9章 Strutsフレームワークの拡張
9.1 拡張点とは
9.2 一般的な拡張点
9.2.1 プラグインメカニズムの使用
9.2.2 Struts設定クラスの拡張
9.3 コントローラの拡張点
9.3.1 ActionServletクラスの拡張
9.3.2 RequestProcessorクラスの拡張
9.3.3 Action基底クラスの拡張
9.4 ビューコンポーネントの拡張
9.4.1 Strutsのカスタムタグの拡張
9.5 モデルコンポーネントの拡張
9.5.1 UserContainerとApplicationContainerクラス
9.6 フレームワーク拡張の短所
10章 例外処理
10.1 Javaの例外処理
10.1.1 Javaの例外
10.1.2 メソッド呼び出しスタック
10.1.3 throws節について
10.1.4 チェックされる例外とされない例外
10.1.5 例外処理のパフォーマンスへの影響
10.2 システム例外とアプリケーション例外
10.3 チェーン化された例外
10.3.1 複数の例外の対処
10.4 Strutsが提供する例外処理
10.4.1 宣言とプログラムによる例外処理
10.4.2 プログラムによる例外処理
10.5 未決事項の整理
10.5.1 リモート例外の処理
10.5.2 カスタムタグでの例外
10.5.3 例外処理の国際化
10.6 まとめ
11章 Validatorフレームワーク
11.1 Validationフレームワークの必要性
11.2 Validatorのインストールと設定
11.2.1 必要なパッケージ
11.2.2 検証ルールの設定
11.2.3 Validatorの組み込み
11.3 ActionFormでのValidatorの使用
11.4 独自の検証ルールの作成
11.5 ValidatorとJSPのカスタムタグ
11.5.1 ValidatorでのJavaScriptの使用
11.6 検証の国際化
11.7 Struts以外でのValidatorの使用
11.7.1 validation-rules.xmlの修正
12章 国際化とStruts
12.1 国際化とは
12.2 Javaでの国際化サポート
12.2.1 Localeクラス
12.2.2 Javaのリソースバンドル
12.2.3 MessageFormatクラス
12.2.4 多言語対応
12.3 Strutsアプリケーションの国際化
12.3.1 Strutsのリソースバンドル
12.3.2 リソースバンドル名の指針
12.3.3 リソースバンドルへのアクセス
12.3.4 キャラクタセットの設定
12.4 例外処理と国際化
13章 StrutsとEJB
13.1 EJBを使用するStorefrontサービスの実装
13.1.1 EJBの概略
13.1.2 セッションファサード
13.1.3 ビジネスインタフェース
13.1.4 ステートレスセッションBeanの実装
13.1.5 JBossの配置
13.2 StrutsとEJBのインタフェース
13.2.1 ビジネスデリゲートの使用
13.2.2 EJBホームとリモート参照の管理
13.2.3 動的プロキシの使用
13.3 まとめ
14章 Tilesの使用
14.1 テンプレートの理解
14.1.1 テンプレートとは
14.2 Tilesのインストールと設定
14.2.1 Tilesのダウンロード
14.2.2 必要なJARと他のファイルのインストール
14.2.3 Tilesタグライブラリの追加
14.2.4 Strutsで使用するためのTilesの設定
14.3 Tilesの概要
14.3.1 タイルとは
14.3.2 レイアウトタイルの使用
14.3.3 レイアウトの計画
14.3.4 レイアウトへのパラメタ渡し
14.4 Tilesタグライブラリ
14.4.1 insertタグ
14.4.2 definitionタグ
14.4.3 putタグ
14.4.4 putListタグ
14.4.5 addタグ
14.4.6 getタグ
14.4.7 getAsStringタグ
14.4.8 useAttributeタグ
14.4.9 importAttributeタグ
14.4.10 initComponentDefinitionsタグ
14.5 定義の使用
14.5.1 JSPでの定義宣言
14.5.2 設定ファイルでの定義宣言
14.5.3 タイル定義の拡張
14.5.4 Strutsのフォワードとしての定義
14.6 Tilesの国際化サポート
15章 Strutsアプリケーションでのロギング
15.1 Webアプリケーションでのロギング
15.2 ロギングでのサーブレットコンテナの使用
15.2.1 フィルタの使用
15.2.2 フィルタの作成
15.2.3 イベントリスナの使用
15.2.4 イベントリスナの作成
15.2.5 イベントリスナクラスの作成
15.3 JakartaのCommons Loggingパッケージ
15.3.1 Commons Loggingパッケージのインストール
15.3.2 Commons Logging APIの使用
15.3.3 StrutsフレームワークとCommons Loggingパッケージ
15.4 log4jパッケージの使用
15.4.1 log4jとStrutsの統合
15.4.2 ロガーとは
15.4.3 log4j Appenderの設定
15.4.4 log4jのログレベル
15.4.5 log4jの初期化
15.4.6 ログファイルのロールオーバ
15.5 JSPでのCommons Loggingの使用
15.6 log4jのパフォーマンスへの影響
15.7 サードパーティのlog4j拡張
15.8 Java 1.4のロギングAPI
16章 Strutsアプリケーションのパッケージ化
16.1 パッケージ化の是非
16.1.1 パッケージ化とは
16.1.2 配置とは
16.2 アプリケーションのパッケージ方法の決定
16.2.1 名前空間管理
16.2.2 JSPファイルを置く場所
16.2.3 JSPのプリコンパイル
16.2.4 EJBリソースとStrutsのパッケージ化
16.3 WARファイルとしてのアプリケーションのパッケージ化
16.3.1 WARファイルの作成
16.4 Antを用いたStrutsアプリケーションのビルド
16.4.1 Antとは
16.4.2 Antのインストールと設定
16.4.3 開始
16.4.4 Javaソースファイルのコンパイル
16.4.5 Antを用いたWARファイルのビルド
16.4.6 クリーンアップ
16.5 自動ビルド環境の設定
16.5.1 cronを用いたAntの呼び出し
16.5.2 Microsoftのタスクスケジューラの使用
16.6 サーバの遠隔再起動
17章 パフォーマンスへの対処
17.1 優れたパフォーマンスとは
17.2 パフォーマンステストと負荷テスト
17.3 パフォーマンステストとストレステストのツール
17.4 Storefrontアプリケーションのテスト
17.4.1 パフォーマンス目標の理解
17.4.2 パフォーマンス基準の確立
17.4.3 トラブル領域の発見
17.4.4 ソフトウェアとハードウェアへの必要な変更
17.5 パフォーマンスとスケーラビリティの理解
17.5.1 リクエストスコープとセッション
17.5.2 synchronizedキーワードの使用
17.5.3 多すぎるカスタムタグの使用
17.5.4 JVMの不適切なチューニング
17.5.5 多すぎるリモートコールの使用
17.5.6 多すぎる画像の使用
付録A Struts 1.0からの変更点
A.1 ActionServletとRequestProcessor
A.2 StrutsのActionクラスに対する修正
A.3 web.xmlとstruts-config.xmlへの変更
A.4 Struts 1.1の新機能
A.4.1 宣言による例外処理
A.4.2 動的なActionForm
A.4.3 プラグイン
A.4.4 複数のアプリケーションモジュール
A.4.5 Nestedタグ
A.5 Struts Validator
A.5.1 OROパッケージへの変更
A.6 Commons Loggingへの変更
A.7 Adminアクションの削除
A.8 GenericDataSourceの非推奨
A.9 Commonsプロジェクトへの依存
付録B Strutsのダウンロードとインストール
B.1 バイナリ配布とソース配布
B.1.1 ソース配布からのStrutsのビルド
B.1.2 バイナリ配布のインストール
B.2 TomcatにStrutsをインストールする場合のヒント
B.3 WebLogicにStrutsをインストールする場合のヒント
B.4 WebSphereにStrutsをインストールする場合のヒント
B.5 JRunにStrutsをインストールする場合のヒント
付録C リソース
C.1 Strutsのメーリングリスト.
C.2 Strutsに関するWebページ
C.3 Validatorのサイト
C.4 Tilesのサイト
C.5 Nestedタグのサイト
C.6 Struts Console
C.7 Easy Strutsプロジェクト
索 引
|