contents memorandum はてな

目次とメモを置いとく場

『スッキリわかるサーブレット&JSP入門[第2版]』(国本大悟 インプレス 2019//2014)

著者:国本 大悟[くにもと・だいご]
監修:株式会社フレアリンク
NDC:007.64 : 情報学.情報科学


スッキリわかるサーブレット&JSP入門 第2版 - インプレスブックス


 2023年2月に第三版が刊行。
スッキリわかるサーブレット&JSP入門 第3版 - インプレスブックス


【目次】
まえがき [003]
本書の見方 [004]
CONTENTS [005-012]


第0章 サーブレット / JSPを学ぶにあたって 013


  第I部 Webのしくみを知ろう

第1章 HTMLとWebページ 021
1.1 WebページとHTML 022
  1.1.1 Webアプリケーション開発の基礎知識
  1.1.2 HTMLとブラウザ
1.2 HTMLの基本構造 027
  1.2.1 タグとは
  1.2.2 属性
  1.2.3 HTMLの基本構造
1.3 Webページの作成 033
  1.3.1 基本的なタグ
  1.3.2 Webページ作成の手順とルール
  1.3.3 HTMLファイルの作成
  1.3.4 HTMLファイルからWebページを表示
  1.3.5 Webページの表示がおかしい場合(空白)
  1.3.6 Webページの表示がおかしい場合(文字化け)
1.4 HTMLリファレンス 043
1.5 まとめ 046
1.6 練習問題 039
1.7 解答 040


第2章 Webのしくみ 051
2.1 Webページの公開 052
  2.1.1 Webページを公開する方法
  2.1.2 リクエストに必要なもの

2.2 Webを支える通信のしくみ 054
  2.2.1 HTTPとは
  2.2.2 リクエストの中身
  2.2.3 レスポンスの中身

2.3 Webアプリケーションのしくみ 059
  2.3.1 Webアプリケーション
  2.3.2 サーバサイドプログラム
  2.3.3 サーブレットJSPによるWebアプリケーション開発
  2.3.4 アプリケーションサーバとは

2.4 開発の準備をしよう 065
  2.4.1 開発に必要なもの
  2.4.2 開発の準備をする

2.5 開発環境を体験する
  2.5.1 体験する内容
  2.5.2 HTMLファイルをEclipseで作成
  2.5.3 アプリケーションサーバを起動
  2.5.4 HTMLファイルのリクエストとURL
  2.5.5 404ページ
  2.5.6 Eclipseの実行機能
  2.5.7 問題解決のために「虎の巻」を活用

2.6 まとめ 075
  2.6.1 この章で学習した内容

2.7 練習問題 076
2.8 解答 077


  第II部 開発の基礎を身に付けよう

第3章 サーブレットの基礎 081
3.1 サーブレットの基礎と作成方法 082
  3.1.1 サーブレットとは
  3.1.2 サーブレットクラスの基本形
  3.1.3 HttpServletRequestとHttpServletResponse
  3.1.4 HTMLを出力
  3.1.5 サーブレットクラスのコンパイルインスタンス

3.2 サーブレットクラスの実行方法 088
  3.2.1 サーブレットクラスのURL
  3.2.2 URLパターンの設定
  3.2.3 サーブレットクラスを実行する
    方法① ブラウザを起動してURLを入力する
    方法② Eclipseの実行機能を利用する
    方法③ サーブレットクラスへのリンクをクリックする
  3.2.4 リクエストメソッドと実行メソッド

3.3 サーブレットクラスを作成して実行する 093
  3.3.1 Eclipseサーブレットクラスを定義
    解説① URLパターン
    解説② serialVersionUIDフィールド
    解説③ HTMLの出力
    補足① 運勢をランダムに決定
    補足② 実行日の取得
  3.3.2 サーブレットクラスを実行

3.4 サーブレットの注意事項 098
  3.4.1 サーブレットクラスの内容を変更するときの注意
    対処方法① サーバを再起動する
    対処方法② しばらく待つ
  3.4.2 サーブレットの基本の学習方法
  3.4.3 サーブレットクラスのAPIドキュメント

3.5 まとめ 103
3.6 練習問題 104
3.7 解答 105


第4章 JSPの基本 107
4.1 JSPの基本 108
  4.1.1 JSPとは

4.2 JSPの基本 112
  4.2.1 JSPファイルの構成要素
  4.2.2 スクリプトレット
  4.2.3 スクリプト
  4.2.4 JSPコメント
  4.2.5 pageディレクティブ
  4.2.6 pageディレクティブ―― Content-Typeヘッダを指定
  4.2.7 pageディレクティブ――クラス、インターフェースをインポート

4.3 JSPファイルの実行方法 119
4.4 JSPファイルを作成して実行する 121
4.5 まとめ 126
4.6 練習問題 127
4.7 解答 128


第5章 フォーム 129
5.1 フォームの基本 130
  5.1.1 フォームとは
  5.1.2 フォームの構造
  5.1.3 フォームの部品
  5.1.4 フォームの作成
  5.1.5 データ送信のしくみ
  5.1.6 GETリクエストとPOSTリクエス

5.2 リクエストパラメータの取得 141
  5.2.1 リクエストパラメータとHttpServletRequestインスタンス
  5.2.2 サーブレットクラスでリクエストパラメータの値を取得する
  5.2.3 JSPファイルでリクエストパラメータの値を取得する

5.3 フォームを使ったプログラムの作成 147
  5.3.1 サンプルプログラムの説明
  5.3.2 サンプルプログラムを作成する

5.4 リクエストパラメータの応用 154
  5.4.1 開発者がプログラムにデータを送る

5.5 まとめ 156
5.6 練習問題 157
5.7 解答 159


  第III部 本格的な開発を始めよう

第6章 MVCモデルと処理の遷移 163
6.1 MVCモデル 164
  6.1.1 サーブレットクラスとJSPファイル、それぞれの得手不得手
  6.1.2 MVCモデルとは

6.2 処理の転送 169
  6.2.1 フォワードとは
  6.2.2 フォワードの実現方法と特徴
  6.2.3 JSPファイルへの直接リクエストを禁止する
  6.2.4 フォワードのサンプルプログラムを作成する
  6.2.5 リダイレクトとは
  6.2.6 リダイレクトの実現方法
  6.2.7 リダイレクトのサンプルプログラムを作成する
  6.2.8 フォワードとリダイレクトの使い分け
  6.2.9 転送後のURLの違い
  6.2.10 フォワードとリダイレクトの比較

6.3 まとめ 184
6.4 練習問題 185
6.5 解答 186


第7章 リクエストスコープ 187
7.1 スコープの基本 188
  7.1.1 スコープとは
  7.1.2 スコープとインスタンス
  7.1.3 JavaBeansのサンプルプログラム
    JavaBeansのルール① 
    JavaBeansのルール②
    JavaBeansのルール③
    JavaBeansのルール④
    JavaBeansのルール⑤
  7.1.4 JavaBeansのプロパティ

7.2 リクエストスコープの基礎 196
  7.2.1 リクエストスコープの特徴
  7.2.2 リクエストスコープの基本操作
  7.2.3 JSPファイルでリクエストスコープを使用する例

7.3 リクエストスコープを使ったプログラムの作成 200
  7.3.1 サンプルプログラムの説明
  7.3.2 サンプルプログラムの作成

7.4 リクエストスコープの注意点 209
  7.4.1 リクエストスコープでできないこと

7.5 まとめ 212
7.6 練習問題 213
7.7 解答 215


第8章 セッションスコープ 217
8.1 セッションスコープの基礎 218
  8.1.1 セッションスコープの特徴
  8.1.2 セッションスコープの基本操作の例

8.2 セッションスコープを使ったプログラムの作成 223
  8.2.1 サンプルプログラムの基本動作 
  8.2.2 リクエストパラメータによる処理の振り分け 
  8.2.3 サンプルプログラムの作成 
    [コード8-5]解説① セッションスコープ内のインスタンスを削除
    [コード8-6]解説① パスワードボックス
    [コード8-7]解説① リクエストパラメータの送信

8.3 セッションスコープのしくみ 234
  8.3.1 セッションID
  8.3.2 セッションIDとクッキー

8.4 セッションスコープの注意点 237
  8.4.1 セッションのタイムアウト
  8.4.2 セッションスコープの破棄とインスタンスの削除

8.5 まとめ 241
8.6 練習問題 242
8.7 解答 243


第9章 アプリケーションスコープ 245
9.1 アプリケーションスコープの基本 246
  9.1.1 アプリケーションスコープの特徴
  9.1.2 Webアプリケーションの開始と終了
    1. サーバの起動と停止
    2. オートリロード機能
    3. 管理ツールによる開始と終了
  9.1.3 アプリケーションスコープの基本動作

9.2 アプリケーションスコープを使ったプログラムの作成 252
  9.2.1 サンプルプログラムの基本動作
  9.2.2 サンプルプログラムの作成
    [コード9-5]解説① スコープからインスタンスが取得できなかった場合

9.3 アプリケーションスコープの注意点 259
  9.3.1 アプリケーションスコープのトラブル
    ① 同時アクセスによる更新
    ② インスタンスの保存期間

9.4 スコープの比較 261
  9.3.1 スコープの特徴のまとめ

9.5 まとめ 262
9.6 練習問題 263
9.7 解答 264


第10章 アプリケーション作成 267
10.1 作成するアプリケーションの機能と動作 268
  10.1.1 「どこつぶ」の機能と画面設計
    機能① ログイン機能
    機能② ログアウト機能
    機能③ 投稿機能
    機能④ 閲覧機能
  10.1.2 「どこつぶ」作成にあたって

10.2 開発の準備 271
  10.2.1 動的Webプロジェクトの作成
  10.2.2 JavaBeansの作成
  10.2.3 トップ画面の作成

10.3 ログイン機能を作成する 276
  10.3.1 ログイン機能のしくみ
  10.3.2 プログラムの作成

10.4 メイン画面を表示する 282
  10.4.1 メイン画面表示のしくみ
  10.4.2 プログラムの作成
    [コード10-8]解説① ArrayListインスタンスを格納
    解説② スコープからArrayListインスタンスを取得
    解説③ デフォルトページへのリダイレクト

10.5 ログアウト機能を作成する 289
  10.5.1 ログアウト機能のしくみ
  10.5.2 プログラムの作成

10.6 投稿と閲覧の機能を作成する 293
  10.6.1 投稿と閲覧機能そしくみ
  10.6.2 プログラムの作成
    [コード10-13]解説① ArrayListインスタンスを格納
    [コード10-15]解説① ArrayListに格納されたインスタンスを先頭から順に取得

10.7 エラーメッセージの表示機能を追加する 301
  10.7.1 エラー表示のしくみ
  10.7.2 プログラムの作成

10.8 まとめ 307


  第IV部 応用的な知識を深めよう

第11章 サーブレットクラスの実行のしくみとフィルタ 311
11.1 サーブレットクラス実行のしくみ 312
  11.1.1 サーブレットクラスのインスタンス
  11.1.2 init() メソッド/ destroy() メソッド
  11.1.3 init() / destroy() メソッドのサンプルプログラム
    解説① init() / destroy() メソッド
  11.1.4 init() メソッドの注意点
  11.1.5 サーブレットクラスのフィールド

11.2 リスナー 325
  11.2.1 リスナーのしくみ
  11.2.2 リスナーの作成方法
  11.2.3 リスナーのサンプルプログラム
    解説① @WebListenerアノテーションの付与
    解説② リスナーインタフェースとそのメソッドの実装
  11.2.4 リスナーの作り方

11.3 フィルタ 330
  11.3.1 フィルタとは
  11.3.2 フィルタのサンプルプログラム
    解説① @Filterアノテーションの付与
    解説② Filterインタフェースの実装
    解説③ doFilter()メソッド
  11.3.3 フィルタクラスの作り方

11.4 この章のまとめ 337
11.5 練習問題 338
11.6 練習問題の解答 339


第12章 アクションタグとEL式 341
12.1 インクルードと標準アクションタグ 342
  12.1.1 動的インクルードと標準アクションタグ
  12.1.2 動的インクルードのサンプルプログラム
    解説① インクルード先の指定方法
  12.1.3 静的インクルードとサンプルプログラム

12.2 EL式 351
  12.2.1 EL[Expression Language]式とは
  12.2.2 EL式の使い方
  12.2.3 EL式のサンプルプログラム
    ポイント① インポートとスコープからの取得が不要
    ポイント② プロパティの値を取得
    ポイント③ 出力
  12.2.4 EL式の演算子
  12.2.5 EL式とコレクション
  12.2.6 EL式とスクリプト要素

12.3 JSTL[JavaServer Pages Standard Tag] 360
  12.3.1 JSTLとカスタムタグ
  12.3.2 JSTLの構成
  12.3.3 Coreタグライブラリ
    変数出力
    分岐
    繰り返し
  12.3.4 JSTLのサンプルプログラム
  12.3.5 アクションタグとEL式の関係

12.4 この章のまとめ 371
12.5 練習問題 372
12.6 解答 373


第13章 JDBCプログラムとDAOパターン 375
13.1 データベースとJDBCプログラム 376
  13.1.1 データベースの基礎知識
  13.1.2 JDBCプログラム
  13.1.3 JDBCプログラムの例

13.2 DAOパターン 385
  13.2.1 JDBCプログラムの問題
  13.2.2 DAO[Date Access Object]パターンによる解決
  13.2.3 DAOパターンのサンプルプログラム
  13.2.4 WebアプリケーションとDAOパターンの関係

13.3 どこつぶでデータベースを利用する 396
  13.3.1 データベース化の準備
  13.3.2 データベース化のしくみ
  13.3.3 プログラムの作成

13.4 この章のまとめ 407
13.5 練習問題 408
13.6 解答 409


  第V部 設計手法を身に付けよう

第14章 Webアプリケーションの設計
14.1 Webアプリケーションの設計とは 414
  14.1.1 アプリケーションの要件
  14.1.2 さまざまな設計手法
  14.1.3 テーブルの設計
  14.1.4 開発する機能の順番を決定
  14.1.5 画面の設計
  14.1.6 サーブレットクラスとJSPファイルの設計
    画面、サーブレットクラス、JSPファイルのつながり
    リクエストパラメータの流れ
    スコープ
    リクエスト先がサーブレットクラスか
    画面を出力しているのはJSPファイルか
    処理に必要な情報が揃っているか
    画面に出力するのに必要な情報が揃っているか
  14.1.7 サーバサイドの設計
    BO[Business Object]
    DAO[Data Access Object]
    Entity  

14.2 プログラムを完成させる 429
  14.2.1 プログラムを書いて機能を完成 429
    ①Entityクラスの作成
    ②DAOの作成
    ③DAOのテスト
    ④BO[Business Object]の作成
    ⑤BOのテスト
    ⑥サーブレットクラスとJSPファイルの連携の作成
    ⑦画面遷移の確認
    ⑧サーブレットクラスの仕上げ
    ⑨JSPファイルの仕上げ
    ⑩機能の最終動作確認
  14.2.2 次の機能を開発する際のコツ 

14.3 まとめ 448 


付録
付録A 使用するソフトウェアの操作手順 449


付録B フォーム作成の注意点 451
 B.1 フォームの作り方
  B.1.1 4つの連携点
  B.1.2 対応していない場合に生じる問題


付録C エラー解決・虎の巻 455
 C.1 エラーとの上手な付き合い方 456
  C.1.1 エラーを解決できるようになる3つのコツ
  C.1.2 Eclipseコンパイルエラー
  C.1.3 スタックトレースの読み方
 C.2 トラブルシューティング 461
  C.2.1 リクエストしていないページや画面が表示される
  C.2.2 サーバを起動できない
  C.2.3 エラーは出ないが動作がおかしい
  C.2.4 Eclipseの操作で生じる不具合
  C.2.5 Eclipseのエディタで警告/エラーが表示される
  C.2.6 例外が発生する
  C.2.7 例外が発生する―― JdbcSQLException


付録D 補足 485
 D.1 Java EEの基礎知識
  D.1.1 Java EEとは
  D.1.2 Java EEの仕様と実装
  D.1.3 サーブレットJSPのバージョン
 D.2 Webアプリケーションとデプロイ
  D.2.1 Webアプリケーションのディレクトリ構成と動的Webプロジェクト
  D.2.2 WebアプリケーションのデプロイとWAR[Web Application Resources]ファイル
  D.2.3 JARファイル
 D.3 リクエスト先の指定方法
  D.3.1 指定方法の種類
  D.3.2 絶対URLを使って指定する方法
  D.3.3 相対URLを使って指定する方法
  D.3.4 ルート相対URLを使って指定する方法
 D.4 本書のデータベース環境を構築
  D.4.1 テーブルを作成する
  D.4.2 テーブルにレコードを追加する
  D.4.3 SELECT文でレコードを検索する
  D.4.4 どこつぶ専用データベースを作成する


INDEX [503-509]
奥付 [510]





【抜き書き】

・業界用語(77頁)について。

 「どうやら若者のhoge離れが進んでいる」