|
Section 1 - サーブレット テクノロジー モデル
1.1 HTTPメソッド(GET、POST、PUTなど)の目的、及びHTTPプロトコルの技術的な特徴を説明する。また、クライアント(通常はWebブラウザ)がそれを使う理由を挙げ、HTTPメソッドに対応するHttpServletメソッドを識別する。
1.2 HttpServletRequestインタフェースを使用して、以下のコードを書き出す。
- リクエストからHTTPフォームパラメータ を取得するコード
- HTTPリクエストヘッダ情報を取得するコード
- リクエストからクッキーを取得するコード
1.3 HttpServletレスポンスのインタフェースを使用して、以下のコードを書き出す
- レスポンスヘッダを設定する
- レスポンスオブジェクトのコンテンツタイプを設定する
- レスポンスオブジェクトに対しテキストストリームを取得する
- レスポンスオブジェクトに対しバイナリストリームを取得する
- 他のURLへHTTPリクエストをリダイレクトする
- レスポンスオブジェクトにクッキーを追加する
1.4 以下に示すサーブレットのライフサイクルの目的とイベントシーケンスを説明する。
- サーブレットクラスをロードする
- サーブレットのインスタンス化
- initメソッドの呼び出し
- serviceメソッドの呼び出し
- destroyメソッドの呼び出し
Section 2 - Webアプリケーションの構造と配備
2.1 以下を含むWebアプリケーションのファイルとディレクトリ構造を構築する。
- 静的コンテンツ
- JSP
- サーブレットクラス
- 配備記述子
- タグライブラリ
- JARファイル
- Javaクラスファイル
また、HTTPアクセスからリソースファイルを保護する方法を記述する。
2.2 以下の配備記述子の要素に対応する目的と意義を記述する。
error-page, init-param, mime-mapping, servlet, servlet-class, servlet-mapping,
servlet-name, welcome-file
2.3 以下の配備記述子の要素に対応する正しい構造を構築する。
error-page, init-param, mime-mapping, servlet, servlet-class, servlet-mapping,
servlet-name, welcome-file
2.4 WARファイルの目的およびコンテンツ、構造についての説明。
Section 3 - Webコンテナモデル
3.1 ServletContext init パラメータ:初期化パラメータにアクセスするためのサーブレットコードを書き、初期化パラメータを宣言する配備記述子要素を作成する。
3.2 基本的な属性スコープ(request, session, context):サーブレットコードで属性を追加、取得、削除する。ある状況において、ある属性に適したスコープを識別し、それぞれのスコープに関連したマルチスレッドにおける問題性を識別する。
3.3 Webコンテナのリクエスト処理モデル:フィルタを設定し、リクエストまたはレスポンスのラッパーを作成する。設計の不具合があれば、フィルタまたはラッパーを適用する。
3.4 リクエスト、セッション、Webアプリケーションに対するWebコンテナのライフサイクルイベント:各スコープのライフサイクルに対しリスナークラスを作成、設定する。スコープ属性リスナークラスを作成、設定する。ある状況において、適した属性リスナーを識別する。
3.5 RequestDispatcherの構造:RequestDispatcherを生成するサーブレットコードを書く。
ターゲットリソースをフォワード或いはインクルードするサーブレットコードを書く。コンテナによって
ターゲットリソースに提供されたリクエストスコープ下における属性を識別し記述する。
Section 4 - セッション管理
4.1 オブジェクトをsessionオブジェクト内へ格納・検索するサーブレットコードを書く。
4.2 sessionオブジェクトへのアクセスに使用されるAPIと、ライフサイクルを管理するAPIに関する説明、及びメカニズムを識別する。
4.3 sessionリスナーを使って、オブジェクトがセッションに追加されたときにイベントへ対応するコードを書く。またsessionオブジェクトが、あるVMから別のVMへ移動するときにイベントに対応するコードを書く。
4.4 ある状況において、Webコンテナがセッション管理を行う場合、クッキーやURLの書き換えとの関連性を、記述・コードによってそのメカニズムを識別する。
Section 5 - Webアプリケーションのセキュリティ
5.1 サーブレットの仕様に基づいて、以下のセキュリティの仕組みを比較・対照させる。
- 認証
- 許可
- データ完全性
- 機密性
5.2 配備記述子の中で、セキュリティ制約、Webリソース、ログイン設定、セキュリティロールなどを宣言する。
5.3 以下の認証タイプを比較・対照させる。
(BASIC, DIGEST, FORM, CLIENT-CERT)
その動作について記述。また、状況に応じて適したタイプを選択する。
Section 6 - JSPテクノロジーモデル
6.1 以下の要素に対応するJSPコードを識別あるいは記述する。
- テンプレートテキスト
- スクリプト要素
- 標準アクションとカスタムアクション
- 式言語(EL)要素
6.2 以下のディレクティブを使用してJSPコードを書く。
- 'page'('import', 'session', 'contentType', 'isELIgnored'属性を用いて)
- 'include'
- 'taglib'
6.3 正しいシンタックスを使用したJSPドキュメント(XMLベースのドキュメント)を書く。
6.4 JSPのライフサイクルの目的とイベントシーケンスを記述する。
- JSPからサーブレットのソースコードに変換
- サーブレットのクラスファイルへコンパイル
- コンテナによるクラスファイルのロード
- サーブレットインスタンスの生成
- コンテナによるjspInit() メソッドの呼び出し
- コンテナによる_jspService() メソッドの呼び出し
- コンテナによるjspDestroy() メソッドの呼び出し
6.5 定義済みオブジェクトを使用して、設計目標に応じたJSPコードを書く。
- request
- response
- out
- session
- config
- application
- page
- pageContext
- exception
6.6 タグライブラリの宣言、式言語(EL)の終了、スクリプト言語の終了を行う、配備記述子を設定する。
6.7 ある設計目標のもと、あるJSPページが別のJSPページを含めるために最も適切なインクルードメカニズムを識別し、JSPコードを書く。
Section 7 - 式言語(EL)を使用したJSPの構築
7.1 ある状況において、pageScope, requestScope, sessionScope, applicationScope, パラメータとparamValues, ヘッダーとheaderValues, cookie, initParam, pageContextを含む定義済み変数にアクセスするELコードを書く。
7.2 ある状況において、以下の演算子を使用するELコードを書く:属性アクセス(the operator)、コレクションアクセス(the [] operator)
7.3 ある状況において、以下の演算子を使用するELコードを書く:算術演算子、比較演算子、論理演算子。
7.4 ある状況において、関数を使用するELコード、EL関数のためのコード、タグライブラリ記述子にEL関数を設定するコードを書く。
Section 8 - 標準アクションを使用したJSPの構築
8.1 ある設計目標のもと、以下の標準アクションを使用してコード部分を作成する。
- jsp:useBean(id, scope, type, classの属性で)
- jsp:getProperty
- jsp:setProperty(全ての属性を組み合わせて)
- jsp:include
- jsp:forward
- jsp:param
Section 9 - タグライブラリを使用したJSPページの構築
9.1 カスタムタグライブラリ、タグファイルのライブラリに対して、JSPにtaglibディレクティブを作成する。
9.2 ある設計目標のもと、JSPの中にカスタムタグの構造を作成する。
9.3 ある設計目標のもと、coreタグライブラリから適当な JSP Standard Tag Library (JTSL v1.1)のタグを使用する。
Section 10 - カスタムタグライブラリの構築
10.1 doStartTag, doAfterBody, doEndTag の各メソッドを実行するときの"Classic"カスタムタグイベントモデルのシンタックスを記述し、各メソッドの戻り値が意味するものを説明する。タグハンドルクラスを書く。
10.2 PageContext API を使用して、JSP定義済み変数にアクセスするタグハンドラコードを書き、Webアプリケーション属性にアクセスする。
10.3 ある状況において、parent tagとarbitary tag ancestorにアクセスするタグハングラコードを書く。
10.4 カスタムタグイベントモデルのセマンティックを記述する。
タグハンドラクラスを書き、タグ内のJSPコンテンツの制約を説明する。
10.5 タグファイルのセマンティックス、Webアプリケーションの構造を記述する。
タグファイルを書き、タグのボディ内にあるJSPコンテンツの制約を説明する。
Section 11 - J2EEパターン
11.1 ある問題を解決するためのパターンを以下から選択する。
Intercepting Filter, Model-View-Controller, Front Controller, Service Locater,
Business Delegate, Data Transfer Object
11.2 以下のデザインパターンと、その使用がもたらすと考えられる利益とを合致させる。
Intercepting Filter, Model-View-Controller, Front Controller, Service Locater, Business Delegate, Data Transfer Object
|