genkai-shobo.jp

わかりやすい Jakarta EE ウェブシステム入門


著者:川場隆/著
価格:3,500円+税
刊行日:2020/11/21

出版社:秀和システム
ISBN:978-4-7980-6208-2
Cコード:3055
[単行本](電子通信)

『詳しいのにわかりやすい Jakarta EE 完全独習テキスト』



内容紹介

『詳しいのにわかりやすい Jakarta EE 完全独習テキスト』
Javaを使ったサイト構築、ウェブアプリケーションから分散システムまで、
Jakarta EEのメインストリームを解説。ショッピングサイトの構築例も掲載。
Java初心者が安心して読める、Jakarta EE入門書籍の決定版!

『Java EE 後継の その広大な新世界に 入門する』
●多数の例題で学び、学校、企業研修などの講習用テキストとしても最適。

もくじ

第1章 Jakarta EEと開発ツール
Section 1 Jakarta EEとは
Section 2 JET (Jakarta EE Toolkit)
2.1 開発ツールの概要
Section 3 開発ツールの準備(Windows編)
3.1 準備作業
Section 4 開発ツールの準備(MacOS編)
4.1 導入作業
Section 5 プロジェクトを実行する
Section 6 まとめ
第2章 HTMLとCSS
Section 1 HTMLの基本
1.1 HTMLファイルの作成と表示
1.2 基本的なHTML文書を作成して実行する
1.3 HTML文書の成り立ち
Section 2 HTMLにCSSを適用する
2.1 CSSを書いて実行する
2.2 CSSの基本形
2.3 複数のCSSを適用する
Section 3 CSSの詳細
3.1 CSSの属性と値
3.2 単位
3.3 色
3.4 セレクタ
3.5 HTMLタグのstyle属性にCSSを書く
3.6 外部CSSファイルを使用する
Section 4 よく使うHTMLタグ
4.1 入力フォームとボタン
4.2 選択
4.3 テキスト入力
4.4 リスト、画像、リンク
4.5 テーブル
4.6 ブロックレベル要素とインライン要素
Section 5 画面のレイアウト
5.1 テーブルタグによるレイアウト
5.2 プロジェクトの読み込みと実行
5.3 CSSによるレイアウト
Section 6 まとめ
要点
練習
第3章 ウェブアプリケーションの仕組み
Section 1 プロジェクトの構成
各種の設定ファイル
ウェブデータ
ソース・パッケージ
persistence.xml
pom.xml
Section 2 バッキングビーン
2.1 バッキングビーンとは
2.2 バッキングビーンの作成
2.3 アノテーションの役割
2.4 アノテーションの追加と自動インポート
Section 3 JSFページ
3.1 JSFページの構成
3.2 ウェブアプリケーションの動作を確認する
Section 4 ページナビゲーション
4.1 ウェブページの構成
4.2 プロジェクトの読み込みと実行
4.3 ナビゲーションの実行と確認
Section 5 ウェブアプリケーションとPayara Server
5.1 ウェブアプリケーションのパッケージング
5.2 Payara Serverの操作方法
Section 6 まとめ
要点
練習
第4章 JSFの基礎
Section 1 JSFの仕組み
1.1 HTTP通信とMVCアーキテクチャ
コンポーネントベースとアクションベースのMVC
1.2 JSFとは
1.3 FacesServlet
1.4 JSFのライフサイクル
1.5 web.xml
Section 2 Faceletsタグの概要
2.1 Faceletsタグの分類
2.2 ネームスペース宣言
2.3 主要なタグ一覧
Section 3 リソースの管理と利用
3.1 resourcesフォルダ
3.2 リソースの指定方法
3.3 リソースのバージョニング
3.4 JavaScriptを使用する
Section 4 まとめ
要点
練習
第5章 JSF:入力と出力の基本
Section 1 表とレイアウト
1.1 h:panelGridの基本
1.2 h:panelGridの属性
1.3 h:panelGridで見栄えのする表を描く
1.4 Faceletsタグの属性のまとめ
Section 2 テキストと画像の出力
2.1 テキスト出力(h:outputText)
2.2 フォーマット出力(h:outputFormat)
2.3 ラベル(h:outputLabel)
2.4 テキスト出力タグの属性
2.5 画像出力(h:graphicImage)
Section 3 画面からの入力
3.1 入力領域(h:inputText、h:inputTextarea)
3.2 パスワード入力(h:inputSecret)
3.3 隠し項目(h:inputHidden)
3.4 入力タグの属性
Section 4 メッセージ処理
4.1 項目ごとにエラーメッセージを表示する(h:message)
4.2 エラーメッセージをまとめて表示する(h:messages)
4.3 メッセージの種類とメッセージタグの属性
4.4 エラーメッセージをカスタマイズする
Section 5 まとめ
要点
練習
第6章 JSF:ボタン・リンクと選択
Section 1 ボタンとリンク
1.1 postとgetの違い
1.2 コマンドボタン(h:commandButton)
1.3 コマンドリンク(h:commandLink)
1.4 h:link
1.5 h:button
1.6 h:outputLink
1.7 ボタンとリンクの属性
Section 2 選択のタグ
2.1 h:selectBooleanCheckbox
2.2 h:selectManyCheckbox
2.3 h:selectOneRadio
2.4 h:selectOneListbox
2.5 h:selectManyListbox
2.6 h:selectOneMenu
2.7 h:selectManyMenu
2.8 選択肢と選択タグの属性
Section 3 まとめ
要点
練習
第7章 表作成、HTML5
Section 1 データテーブル
1.1 データテーブルの基本
1.2 h:dataTableで表示できるもの
1.3 f:facetによるヘッダ、フッタ、キャプションの追加
1.4 CSSを使って見やすい表にする
Section 2 実用的なデータテーブル
2.1 編集できるようにする
2.2 編集できるデータテーブルの作成方法
2.3 クリックした行のオブジェクトを取得する
2.4 h:dataTableの属性
Section 3 HTML5とFaceletsの連携
3.1 HTMLタグをFaceletsタグとして使う(Passing-Through Elements)
3.2 Faceletsタグの中にHTML5の属性を書く(Passing-Through Attribute)
Section 4 まとめ
要点
練習
第8章 コンバータとバリデータ
Section 1 標準コンバータ
1.1 標準コンバータ
1.2 日付時刻のコンバータ(f:convertDateTime)
1.3 整数のコンバータ(f:convertNumber)
Section 2 標準バリデータ
Section 3 エラーメッセージのカスタマイズ
3.1 プロパティファイルの作成
3.2 プロパティファイルの編集
3.3 JSFシステムに登録する
Section 4 ビーン・バリデーション
4.1 ビーン・バリデーションとは
4.2 ビーン・バリデーションで使えるアノテーション
4.3 ビーン・バリデーションの適用方法
4.4 ゲッターへの指定
4.5 メッセージバンドルの利用
Section 5 バリデータの作成
5.1 インタフェースの作成
5.2 検証を行うクラス(バリデータ)の作成
Section 6 クラスレベルのバリデーション
Section 7 まとめ
要点
練習
第9章 Ajax機能
Section 1 Ajax機能とは
1.1 Ajaxが必要なケースの例
Section 2 Ajax機能による改良
2.1 Ajax機能の使用方法(f:ajaxタグ)
2.2 スコープアノテーションを変更する
Section 3 Ajaxコマンドボタン
Section 4 Ajaxバリデーション
4.1 Ajaxバリデーションの例題プログラム
4.2 Ajax処理とスコープアノテーション
4.3 JSFのライフサイクルとAjax処理
Section 5 f:ajaxタグの属性と指定できる値
Section 6 まとめ
要点
練習
第10章 リソースバンドルと国際化
Section 1 リソースバンドル
1.1 プロパティファイルの作成と登録
1.2 リソースバンドルの適用
Section 2 リソースバンドルの国際化
2.1 国際化とは
2.2 ロケールファイルの作成
2.3 ロケールファイルの編集
2.4 ロケールの登録
Section 3 まとめ
要点
練習
第11章 テンプレート機能
Section 1 テンプレート機能
1.1 テンプレート機能とは
1.2 テンプレートファイルの作成
1.3 テンプレートファイル
Section 2 テンプレート用表示データの作成
2.1 content-1.xhtmlファイルの作成
2.2 content-1.xhtmlの編集
Section 3 テンプレートファイルを使用する
3.1 index.xhtmlの作成
3.2 output.xhtmlの作成
3.3 テンプレート関連タグのまとめ
Section 4 まとめ
要点
練習
第12章 CDIー新しいオブジェクトの作り方
Section 1 CDIとは
1.1 CDIを使ってみる
1.2 CDIのスコープアノテーション
1.3 FacesContextとServletContext
1.4 インジェクションポイント
Section 2 Conversation(会話)スコープ
2.1 例題の画面推移
2.2 会話処理の開始と終了
2.3 JSFページの内容
Section 3 複数ページをまとめるFlowスコープ
3.1 FLOWスコープ用のフォルダの作成
3.2 Flow定義ファイルの作成
3.3 JSFページの書き方
3.4 バッキングビーンの書き方
Section 4 インジェクトできるようにする@Produces
4.1 @Producesの使い方
4.2 Listを返すメソッドに@Producesを付ける
4.3 フィールドに@Producersを付ける
4.4 インジェクトできるロガーを作る
4.5 後始末をするためのディスポーザー
Section 5 CDIビーンの実装を使い分ける
5.1 設定ファイル(bean.xml)を使う方法
5.2 アノテーションを使う方法
Section 6 まとめ
要点
練習
第13章 CDIの高度な機能
Section 1 コールバックメソッド
1.1 ライフサイクル・コールバックメソッド
Section 2 インターセプター(割り込み処理)
2.1 カスタムアノテーションの作成
2.2 インターセプタを作成する
2.3 インターセプタをCDIに登録する
2.4 インターセプタを使う
Section 3 デコレーター
3.1 デコレーターを作成する
3.2 beans.xmlに登録する
3.3 使用例
Section 4 オブザーバー(イベント駆動処理)
4.1 同期イベント処理
4.2 非同期イベント処理
Section 5 まとめ
要点
練習
第14章 Jakarta Enterprise Beans(EJB)
Section 1 Jakarta Enterprise Beansの概要
1.1 EJBの種類
1.2 DI(依存性注入)
1.3 セッションビーンの書き方
Section 2 シングルトン・セッションビーン
2.1 シングルトンセッションビーンを使う
2.2 ウェブアプリケーション(画面1)
2.3 ウェブアプリケーション(画面2)
2.4 シングルトンセッションビーンで使えるアノテーション
Section 3 タイマーサービス
3.1 タイマーサービスの起動と終了
3.2 タイマーサービスの作り方
Section 4 非同期呼び出し
Section 5 まとめ
要点
練習
第15章 データベースの基礎
Section 1 データベースとは
1.1 リレーショナルデータベース
1.2 JPAの役割
Section 2 データベースシステムのセットアップ
2.1 Dockerのダウンロードとインストール
2.2 MySQLデータベースを動かす
2.3 Dockerの仕組み
2.4 NetBeansからMySQLの起動・停止を行う
2.5 NetBeansでデータベースmydbの内容を確認できるようにする
2.6 Payara Serverの設定
Section 3 データベースの使い方
3.1 エンティティの作成
3.2 persistence unit (永続性ユニット)
3.3 エンティティマネージャーの使い方
3.4 入力データをデータベースに保存する
3.5 データベースの中身を見る
3.6 @Transactionalアノテーション
Section 4 CRUD処理
4.1 エンティティマネージャーのAPIと使い方
4.2 CRUD処理の書き方
4.3 バッキングビーンのソースコード
Section 5 まとめ
要点
練習
第16章 マッピング・アノテーション
Section 1 マッピング・アノテーションの概要
1.1 アノテーションの概要
1.2 デフォルトのマッピング
Section 2 エンティティの構成を指定する
2.1 テーブルの名前や項目の名前を変える
2.2 複数のテーブルで構成する
2.3 他のクラス全体を1つのフィールドとして組み込む
2.4 カラムの名前を変える
2.5 カラムをデーベースに保管しないように指示する
Section 3 主キーの構成を指定する
3.1 主キーを自動生成する
3.2 複合キーを使う
3.3 複合キーを使う(@IdClass)
Section 4 ファイル、列挙、日付と時刻の扱い方
4.1 ファイルなどの大きなデータを記録する
4.2 列挙の記録方法を指定する
4.3 日付と時刻の取り扱い
Section 5 マッピングの適用例
5.1 エンティティ・クラス
5.2 バッキングビーン (全体のソースリストは5.5に掲載)
5.3 index.xhtml
5.4 画像データの受け渡し
5.5 バッキングビーン(全体)
Section 6 コレクションとマップを使う
6.1 フィールド変数にListやSetを使う
6.2 フィールド変数にMapを使う
Section 7 まとめ
要点
練習
第17章 オブジェクト関係マッピング(ORM)
Section 1 オブジェクト関係マッピングとは
1.1 オブジェクトをフィールドに持つことで関係ができる
1.2 ORMの種類
Section 2 1方向のOne-to-One
2.1 DAOの作成手順
2.2 エンティティの新規登録
2.3 永続性コンテキストの制約
2.4 Customerエンティティの一覧表示
2.5 @JoinColumnで外部キーの名前を指定する
2.6 カスケードを指定して保存を簡単にする
2.7 データベースからの削除(remove)
Section 3 双方向のOne-to-One
3.1 マッピングの指定方法
3.2 エンティティの新規作成
3.3 Addressエンティティを読み出してみる
Section 4 1方向のMany-to-One
4.1 マッピングの指定方法
4.2 エンティティの作成とデータベースへの新規登録
4.3 社員エンティティを一覧出力する
Section 5 1方向のOne-to-Many
5.1 マッピングの指定方法
5.2 エンティティの作成と登録
5.3 講義エンティティの表示
Section 6 双方向のOne-to-Many(Many-to-Oneも同じ)
6.1 マッピングの指定方法
6.2 エンティティの新規登録
6.3 エンティティの表示
Section 7 1方向のMany-to-Many
7.1 マッピングの指定方法
7.2 エンティティの作成と登録
7.3 エンティティの表示
Section 8 双方向のMany-to-Many
8.1 マッピングの指定方法
8.2 エンティティの作成
8.3 エンティティの出力
Section 9 まとめ
要点
練習
第18章 問い合わせ言語JPQL
Section 1 JPQL TEST
1.1 JPQL TESTについて
1.2 JPQL TESTで操作するデータベーステーブル
Section 2 JPQLの書き方
2.1 SELECT文
2.2 集計関数
2.3 識別変数とPath式
Section 3 where句で使える演算子
3.1 いろいろな演算子
3.2 演算子の使い方
Section 4 JPQLの中で使える関数
Section 5 distinctとコンストラクタ式
5.1 重複を取り除くDISTINCTオペレータ
5.2 結果からオブジェクトを作るコンストラクタ式
Section 6 レコードを結合するJOIN
6.1 2つのエンティティの組み合わせ
6.2 内部結合(INNER JOIN) --- エンティティ内部のListとの直積
6.3 外部結合(LEFT JOIN)--- 相手がnullでも直積を取る
Section 7 一括更新と一括削除
7.1 一括更新
7.2 一括削除
Section 8 JPQLをJavaプログラムから実行する
8.1 動的クエリ Query型
8.2 動的クエリ TypedQuery型
8.3 コンストラクタ式による検索結果の抽出
8.4 更新と削除
8.5 名前付きクエリ
8.6 メソッドのまとめ
8.7 ORMでマッピングされたエンティティの削除
Section 9 N+1問題
9.1 デフォルトのフェッチタイプ
9.2 N+1問題とは
9.3 EAGERフェッチに変えても問題は解決されない
9.4 LEFT JOIN FETCH
9.5 マルチLEFT JOIN FETCH
Section 10まとめ
要点
練習
第19章 セキュリティAPI
Section 1 どのページに制限をかけるか指定する
Section 2 利用者を登録する
2.1 テーブルの構成とエンティティクラス
2.2 データベースへの登録処理
Section 3 データベースストアの使用設定
3.1 アノテーションで設定する
3.2 論理JNDI名を使えるようにする
Section 4 認証方式の指定
4.1 カスタムFORM認証とは
4.2 認証方式としてカスタムフォーム認証を指定する
Section 5 認証処理の作成
5.1 login.xhtmlの作成
5.2 login用バッキングビーンの作成
5.3 ログアウト用バッキングビーンの作成
5.4 認証されているかチェックする仕組み
5.5 例題1を実行する
5.6 SecurityContext
Section 6 まとめ
要点
第20章 RESTfulウェブサービス
Section 1 RESTfulウェブサービスの概要
1.1 RESTとは
1.2 RESTfulウェブサービスの構成方法
1.3 クライアントプログラムで実行する
Section 2 サブURIの指定とPathパラメータ
2.1 サブURI
2.2 Pathパラメータ
Section 3 Queryパラメータ
3.1 Queryパラメータ
3.2 Querayパラメータのデフォルト値
3.3 複数のQueryパラメータ
3.4 通信テストプログラムの利用
Section 4 HTTPとメディアタイプ
4.1 MIMEタイプ
4.2 @ProducesとMIMEタイプの選択メカニズム
4.3 @Consumes
Section 5 戻り値の作成
5.1 戻り値に使うResponseクラス
5.2 CRUDのウェブサービス
Section 6 クライアントAPI
6.1 CRUD処理の概要
6.2 クライアントAPIの使い方
Section 7 まとめ
要点
第21章 ウェブアプリケーション
Section 1 プログラミングの準備
1.1 継承を利用してバッキングビーンを分ける
1.2 データベース処理のクラスを作る
1.3 ページングマネージャーを作る
Section 2 『雑貨屋さん.com』について
2.1 商品データ、顧客データの作成
2.2 例題システムの画面構成
2.3 各画面の機能概要
2.4 テンプレート構成
Section 3 エンティティの作成
3.1 エンティティの種類
3.2 エンティティ設計の注意
3.3 エンティティの自動生成
Section 4 商品の一覧表示(トップページ)
4.1 バッキングビーンでの初期化
4.2 コマンドリンクとページナビゲーション
4.3 メニューバー
4.4 商品一覧表示
4.5 その他のページ
Section 5 ログイン認証
Section 6 『雑貨屋さん.com』のソースコード
Section 7 まとめ
要点
課題
巻末資料
Section 1 既定のブラウザを設定する方法
Section 2 サーバーのデータベース設定(Windows用)
2.1 準備作業 ― Javaのパスを環境変数に登録する
2.2 Payara Serverのセットアップ
Section 3 サーバーのデータベース設定(一般的な方法)
3.1 データベースドライバの登録(JETでは不要)
3.2 コネクションプールの作成
3.3 データソースの作成
Section 4 プロジェクトの作成方法
Section 5 MySQLの外部ボリュームを変更する
Section 6 その他の資料

索引