書籍詳細(独習JSP&サーブレット 第3版)

独習JSP&サーブレット 第3版 書影

ISBN: 978-4-7981-6705-3

独習JSP&サーブレット 第3版

山田祥寛 著

著者山田祥寛
出版社翔泳社
価格3,600円(税別)
判形B5変版・2色
ページ数576ページ
発売日2021年12月21日
シリーズ 独習
対象レベル中級

JSP&サーブレットを基礎からきちんとを学ぼう

Javaの基本をマスターした方向け、Webアプリ開発の入門書です。
JSP&サーブレットの基礎からDB連携、便利なライブラリの使い方まで、1つ1つやさしく丁寧に解説します。第3版ではJakarta EE/サーブレット5.0に対応したほか、Visual Studio Codeを使った開発&新機能の解説など全面的な改訂を行っています。
掲載サンプルはサポートサイトからダウンロードできます。
独習JSP&サーブレット 第3版 ロゴ

更新履歴

  • FAQ情報:2022年8月9日 更新
  • 正誤訂正:2023年12月2日 更新

目次

  • 第1章 イントロダクション
  • 1.1 JSP&サーブレットとWebアプリ
  • 1.1.1 クライアント/サーバー間の通信
  • 1.1.2 静的なページと動的なページ
  • 1.1.3 クライアントサイド技術とサーバーサイド技術
  • 1.1.4 サーバーサイド技術の中のJSP&サーブレット
  • 1.1.5 Java技術とJSP&サーブレット
  • 1.1.6 JSPとサーブレットの使い分け
  • 1.2 JSP&サーブレット利用のための基本環境設定
  • 1.2.1 JSP&サーブレットプログラミングに必要なソフトウェア
  • 1.2.2 環境設定の手順―Windowsの場合
  • 1.2.3 環境設定の手順―macOSの場合
  • 1.2.4 環境設定の手順―Windows/macOS共通
  • 1.2.5 [補足]アプリフォルダーを準備する
  • この章の理解度チェック
  • 第2章 JSPの基本
  • 2.1 初めてのJSP
  • 2.1.1 基本的なサンプルの作成
  • 2.1.2 拡張子は「.jsp」が基本
  • 2.1.3 JSPページの構造
  • 2.1.4 文字コードの設定
  • 2.2 ディレクティブ
  • 2.2.1 ディレクティブの基本構文
  • 2.2.2 ページの処理方法を決める―@pageディレクティブ
  • 2.2.3 コンテンツタイプを宣言する―contentType属性
  • 2.2.4 出力文字コードとページ文字コード
  • 2.2.5 バッファー処理を有効にする―buffer属性
  • 2.2.6 クラスライブラリをインポートする―import属性
  • 2.3 アクションタグ
  • 2.3.1 アクションタグの基本的な用法
  • 2.3.2 [補足]インクルードファイルではpageEncoding属性が必須
  • 2.4 スクリプティング要素
  • 2.4.1 スクリプトレット
  • 2.4.2 暗黙オブジェクト
  • 2.4.3 スクリプトレットと固定テンプレート
  • 2.4.4 宣言部
  • 2.4.5 [補足]同時アクセス時の注意
  • 2.4.6 式(Expression)
  • 2.4.7 式(Expression)を記述する場合の注意
  • 2.5 コメント
  • 2.5.1 JSPで利用可能なコメント
  • この章の理解度チェック
  • 第3章 リクエスト情報
  • 3.1 リクエスト情報
  • 3.1.1 HTTP通信の確認
  • 3.1.2 HTTPメソッドとHTTPステータス
  • 3.2 ポストデータ
  • 3.2.1 [例]ポストデータを取得する
  • 3.2.2 フォーム部品
  • 3.2.3 日本語を扱う
  • 3.2.4 複数の値を持つ要素にアクセスする
  • 3.3 クエリ情報
  • 3.3.1 [例]クエリ情報を取得する
  • 3.3.2 [例]ハイパーリンク経由で値を受け渡しする
  • 3.3.3 ポストデータとクエリ情報
  • 3.4 ヘッダー情報
  • 3.4.1 ヘッダー情報の種類
  • 3.4.2 ヘッダー情報の利用方法
  • 3.4.3 [例]リクエストヘッダーを取得する
  • 3.4.4 ヘッダー情報を取得するための専用メソッド
  • 3.4.5 [例]リクエストパスを取得する
  • 3.4.6 [例]レスポンスヘッダーを設定する(1)―リダイレクト
  • 3.4.7 [例]レスポンスヘッダーを設定する(2)―汎用的なヘッダーの発行
  • 3.5 クッキー情報
  • 3.5.1 [例]クッキーの基本的な読み書き
  • 3.5.2 クッキー授受の仕組み
  • 3.6 セッション情報
  • 3.6.1 [例]基本的なセッション情報の読み書き
  • 3.6.2 sessionオブジェクトの主なメソッド
  • 3.6.3 セッションの仕組み
  • 3.6.4 セッションを利用する場合の注意点
  • この章の理解度チェック
  • 第4章 データベース連携
  • 4.1 データベースの種類
  • 4.1.1 リレーショナルデータベースの種類
  • 4.2 データベース操作の基本
  • 4.2.1 mysqlクライアントの使い方
  • 4.2.2 SQLの基本
  • 4.3 JDBC
  • 4.3.1 JDBCとは?
  • 4.3.2 JDBCの内部構造
  • 4.4 データベース接続の準備
  • 4.4.1 コネクションプーリング
  • 4.4.2 データベース接続の基本
  • 4.4.3 データベース切断時の注意点
  • 4.5 SQLクエリの発行
  • 4.5.1 [例]入力値をもとにデータベースに登録する
  • 4.6 結果セットの取得
  • 4.7 トランザクション処理
  • 4.7.1 トランザクションの活用
  • 4.8 メタデータ
  • 4.8.1 [例]データベースの構成情報を取得する
  • 4.8.2 [例]結果セットの構成情報を取得する
  • 第5章 JSTL(Jakarta Standard Tag Library)
  • 5.1 JSTLとはなにか?
  • 5.1.1 JSTLのタグライブラリ
  • 5.1.2 JSTLのインストール方法
  • 5.1.3 [例]変数の出力をJSTLで表現する
  • 5.2 式言語
  • 5.2.1 式言語が必要な理由
  • 5.2.2 暗黙オブジェクトと演算子(式言語)
  • 5.3 Coreタグライブラリ
  • 5.3.1 スコープ変数を設定する―<c:set>タグ
  • 5.3.2 変数の値を出力する―<c:out>タグ
  • 5.3.3 単純分岐を実装する―<c:if>タグ
  • 5.3.4 多岐分岐を実装する―<c:choose>タグ
  • 5.3.5 繰り返し処理を行う―<c:forEach>タグ
  • 5.3.6 [例]Mapの内容を列挙する
  • 5.3.7 [例]ステータス変数を利用する
  • 5.4 Databaseタグライブラリ
  • 5.4.1 [例]Databaseタグライブラリでデータベースを検索する
  • 5.4.2 [例]Databaseタグライブラリでデータを登録する
  • 5.5 i18nタグライブラリ
  • 5.5.1 数値データを加工する―<fmt:formatNumber>タグ
  • 5.5.2 日付データを加工する―<fmt:formatDate>タグ
  • 5.5.3 文字列を日付/数値データに変換する―<fmt:parseDate>/<fmt:parseNumber>タグ
  • 5.5.4 ロケール情報を設定する―<fmt:setLocale>タグ
  • 5.5.5 国際化対応ページを作成する―<fmt:setBundle>/<fmt:message>タグ
  • 5.5.6 リクエスト情報の文字コードを宣言する―<fmt:requestEncoding>タグ
  • 5.6 Functionsタグライブラリ
  • この章の理解度チェック
  • 第6章 サーブレット&JavaBeans
  • 6.1 サーブレットの必要性
  • 6.1.1 JSP/サーブレットは補完関係
  • 6.1.2 JSP=サーブレットである
  • 6.2 サーブレットの基本構文
  • 6.2.1 サーブレットの作成
  • 6.2.2 サーブレットの骨格
  • 6.2.3 [補足]web.xmlにサーブレットを登録する
  • 6.2.4 [例]サーブレットをフォームから起動する
  • 6.3 JSP固有の要素に代わるもの
  • 6.3.1 コンテンツタイプを指定する
  • 6.3.2 暗黙オブジェクトを取得する
  • 6.3.3 スクリプトレットと宣言部
  • 6.3.4 シングルインスタンス・マルチスレッド
  • 6.4 ーブレットのライフサイクル
  • 6.4.1 initメソッドとdestroyメソッド
  • 6.4.2 [例]初期化パラメーターを取得する
  • 6.4.3 [補足]初期化パラメーターをアノテーションで設定する
  • 6.5 サーブレットのより高度な話題
  • 6.5.1 ファイルのアップロード機能を実装する
  • 6.5.2 URLパターンのワイルドカード指定―urlPatterns属性
  • 6.5.3 コンテナー起動時にサーブレットを初期化する―loadOnStartup属性
  • 6.6 JSP&サーブレットの連携
  • 6.6.1 [例]サーブレットの処理結果をJSPページで表示する
  • 6.6.2 リクエスト属性
  • 6.6.3 リダイレクトとフォワード(転送)
  • 6.6.4 リクエスト属性の参照(JSP)
  • 6.6.5 変数のスコープ
  • 6.7 MVCモデル
  • 6.7.1 Model-View-Controllerとは?
  • 6.7.2 [例]Modelを切り出す例
  • 6.7.3 JavaBeans
  • 6.7.4 JavaBeansを受け渡しする方法
  • 6.7.5 [例]JavaBeansのリストを受け渡しする
  • 第7章 デプロイメントディスクリプター 基本編
  • 7.1 デプロイメントディスクリプターの基本
  • 7.1.1 XMLの基本構文
  • 7.1.2 web.xmlの配置先
  • 7.1.3 web.xmlの骨組み
  • 7.2 初期化パラメーターを定義する―<context-param>要素
  • 7.2.1 [例]初期化パラメーターを取得する
  • 7.2.2 JSTLで利用可能な初期化パラメーター
  • 7.3 カスタムのエラーページを設置する―<error-page>要素
  • 7.3.1 [例]カスタムエラーページを定義する
  • 7.4 アプリに認証機能を実装する―<security-constraint>/<login-config>/<security-role>要素
  • 7.4.1 フォーム認証とは?
  • 7.4.2 [例]フォーム認証の機能を実装する
  • 7.4.3 アクセス規則をアノテーションで記述する
  • 7.4.4 [例]ユーザー情報をデータベースで管理する
  • 7.4.5 独自のログインページを実装する
  • 7.5 @page/@taglibディレクティブの記述を省力化する―<jsp-config>要素
  • 7.5.1 [例]共通のヘッダーファイルを定義する
  • 7.5.2 <  scripting-invalid>要素と<el-ignored>要素
  • 7.5.3 リクエスト/レスポンス時の文字コードを設定する
  • 7.6 ウェルカムページを定義する―<welcome-file-list>要素
  • 7.6.1 [例]ウェルカムページを設定する
  • 7.6.2 [補足]デフォルトサーブレット
  • 7.7 Tomcatサーバーを管理する―server.xml
  • 7.7.1 server.xmlの階層構造
  • 7.7.2 サーバー/クライアント間の接続を管理する―<Connector>要素(1)
  • 7.7.3 <  Connector>  要素で利用可能な属性―<Connector>要素(2)
  • 7.7.4 仮想ホスト単位の挙動を定義する―<Host>要素
  • 7.7.5 [補足]アプリの配布―warファイル
  • 7.7.6 アプリ単位の基本情報を定義する―<Context>要素
  • 7.7.7 アプリにTomcat独自のフィルター機能を追加する―<Valve>要素
  • この章の理解度チェック
  • 第8章 デプロイメントディスクリプター 応用編
  • 8.1 アプリ共通の処理を定義する―<filter>/<filter-mapping>要素
  • 8.1.1 フィルタークラスの基本
  • 8.1.2 フィルターの基本構文
  • 8.1.3 web.xmlでフィルター情報を宣言する
  • 8.2 リスナークラスでアプリケーションイベントを捕捉する―<listener>要素
  • 8.2.1 [例]セッションの開始/終了をロギングする
  • 8.2.2 web.xmlでリスナーを宣言する
  • 8.2.3 [例]アプリ開始時に必要なリソースをロードする
  • 8.2.4 [例]サーブレット/フィルターを動的に登録する
  • 8.3 自作のタグライブラリを定義する―<jsp-config>要素
  • 8.3.1 [例]カンマ/タブ区切りテキストをHTMLテーブルに整形する
  • 8.3.2 タグライブラリディスクリプターの配置場所
  • 8.3.3 [例]システムプロパティの情報をリスト化する―動的属性
  • 8.3.4 [例]カスタムタグの出力をカスタマイズする―フラグメント
  • 8.3.5 複数のフラグメントを扱う―<jsp:attribute>要素
  • 8.3.6 タグファイルでカスタムタグの定義を省力化する
  • 8.3.7 タグファイルにおける動的属性/フラグメント
  • 8.4 静的メソッドを式言語から呼び出す
  • 8.4.1 [例]システムプロパティを表示する関数を定義する
  • 8.4.2 カスタムタグと関数の使い分け
  • この章の理解度チェック
  • 第9章 JSP&サーブレットで利用可能なライブラリ
  • 9.1 外部ライブラリの利用方法
  • 9.1.1 .jarファイルとその配置先
  • 9.1.2 クラスローダー
  • 9.2 電子メールを送信する―Jakarta Mail
  • 9.2.1 Jakarta Mailの準備
  • 9.2.2 [例]テキストメールを送信する
  • 9.2.3 [例]添付ファイル付きのHTMLメールを送信する
  • 9.3 JSON形式のデータを生成する―Gson
  • 9.3.1 サーバー機能の準備
  • 9.3.2 クライアントサイド機能の準備
  • 9.4 PDF帳票を生成する―iText
  • 9.4.1 iTextの準備
  • 9.4.2 iTextの基本的な使い方
  • 9.4.3 [例]さまざまなPDF文書の生成
  • この章の理解度チェック
  • 第10章 セキュリティ対策
  • 10.1 クロスサイトスクリプティング脆弱性
  • 10.1.1 原因
  • 10.1.2 対応策
  • 10.2 SQLインジェクション
  • 10.2.1 原因
  • 10.2.2 対策
  • 10.3 クロスサイトリクエストフォージェリ
  • 10.3.1 原因
  • 10.3.2 対策
  • 10.4 パストラバーサル
  • 10.4.1 原因
  • 10.4.2 対策
  • 10.5 その他の攻撃と予防策
  • 10.5.1 Cookieクラスの設定パラメーター
  • 10.5.2 セッションハイジャック
  • 10.5.3 ファイルアップロード攻撃
  • 10.6 入力値の検証
  • 10.6.1 検証の前提
  • 10.6.2 [例]入力フォームの検証処理
  • この章の理解度チェック
  • コラム
  • アプリケーションフレームワーク
  • Tomcatを管理するための便利ツール ―Tomcat Manager概要編
  • 統合開発環境Eclipse
  • Tomcatを管理するための便利ツール ―Tomcat Manager準備編
  • JSP&サーブレットをより深く学ぶための関連書籍

正誤表

該当頁 該当箇所 修正刷
訂正箇所 訂正事項 更新日
p.380 表7.13 usr_roleテーブルのデータ 「role」列 2刷
admin_gui

manager_gui
admin-gui

manager-gui

(※ハイフンが正しいです)
2023/11/23
p.522 リスト10.6 ShowServlet.java 2刷
File fileRoot = new File(application.getRealPath("root")); File fileRoot = new File(application.getRealPath(root));

"root"のダブルクォーテーションを削除してください
2023/12/02

FAQ

VSCodeが自動コンパイルした.classとjava実行環境のバージョン(マイナーバージョン)が異なる場合、Servletを動作させようとするとエラーが出るようです。

配布サンプルの「complete」「template」フォルダー双方の「selfjsp」フォルダー配下に「.settings/org.eclipse.jdt.core.compiler.problem.en」を用意していますので、こちらを「selfjsp」フォルダー配下に配置してお試しください。
なお、こちらは隠しファイルとなっていますので、エクスプローラーやFinderから表示できる状態に切り替えると「.settings」フォルダーが確認できるかと思います。

更新日: 2022.08.09

Windows標準の圧縮ツールでは正しく解凍できない場合があるようです。
7-Zip(https://sevenzip.osdn.jp/)を使って解凍してみてください。

更新日: 2022.02.18

お問い合わせ

書籍に関するご質問や誤りのご報告、ご意見・ご感想などをお寄せください。

Powered by メールフォーム 『オレンジフォーム』