Section 1 サーブレット テクノロジー モデル
HTTPリクエスト
リクエストライン
HTTPメソッド
GET
HEAD
OPTIONS
POST
PUT
DELETE
TRACE
CONNECT
ヘッダ
Accept-Encoding
Accept-Language
Referer
User-Agent
ボディ
GET時は空
HTTPレスポンス
ステータスライン
ステータスコード
ヘッダ
ボディ
サーブレット
引数なしコンストラクタ
Servletインターフェース
GenericServletクラス
HttpServletクラス
ライフサイクル
init
service
destroy
HttpServletRequest
リクエストヘッダ
getHeader
getHeaders
getHeaderNames:Enumeration
getIntHeader
リクエストパラメータ
getParameter
getParameterNames:Enumeration
getParameterValues:String[]
getParameterMap
getQueryString
クッキー
getCookies:Cookie[]
拡張
HttpServletRequestWrapperクラス
Decoratorパターン
フィルタ内でラッピングして変更
HttpServeletResponse
setStatus
レスポンスヘッダ関連
setHeader
setDateHeader
setIntHeader
addHeader
addDateHeader
addIntHeader
setContentLength
ボディ
getOutputStream:ServletOutputStream
getWriter
エラー時
sendError
クッキー
addCookie
Cookie
getName
getValue
setMaxAge(秒)
setSecure
Section 2 Webアプリケーションの構造と配備
ディレクトリ構成
コンテキストルート
WEB-INF
classes
lib
web.xml
Deployment Descriptor
tags
タグファイル
配備記述子(web.xml)
web-app
servlet
servlet-name
servlet-class|jsp-file
load-on-startup
1以上
init-param
param-name
param-value
servlet-mapping
servlet-name
url-pattern
固定URL
/foo
階層以下
/foo/*
拡張子
*.do
welcome-file-list
welcome-file
/は無し
error-page
error-code|exception
location
MIME
mime-mapping
extension
mime-type
環境エントリ
env-entry
description
env-entry-name
env-entry-type
env-entry-value
リソース参照
resource-ref
res-ref-name
res-type
res-auth
リソース環境
resource-env-ref
resource-env-ref-name
resource-env-type
リモートEJB
ejb-ref
ejb-ref-name
ejb-ref-type
home
remote
ejb-link
ローカルEJB
ejb-local-ref
ejb-ref-name
ejb-ref-type
local-home
local
ejb-link
Section 3 Webコンテナモデル
初期化パラメータ
コンテキスト
web.xml
context-param
param-name
param-value
サーブレット
ServletConfig
getInitParameter
スコープオブジェクト
アプリケーション
ServletContext
getInitParameter
セッション
HttpSession
リクエスト
ServletRequest
属性
getAttribute
setAttribute
removeAttribute
getAttributeNames
ライフサイクルイベント
コンテキスト
ServletContextEvent
ServletContextListener
contextInitialized
contextDestroyed
ServletContextAttributeEvent
ServletContextAttributeListener
attributeAdded
attributeRemoved
attributeReplaced
リクエスト
ServletRequestEvent
ServletRequestListener
requestDestroyed
requestInitialized
ServletRequestAttributeEvent
ServletRequestAttributeListener
web.xml
listener
listener-class
RequestDispatcher
取得
ServletContext#getRequestDispatcher
絶対パス
ServletRequest#getRequestDispatcher
相対パス
メソッド
forward
include
フィルタ
Filterインターフェース
destroy
doFilter
init
web.xml
filter
filter-name
filter-class
filter-mapping
filter-name
url-pattern
dispatcher
ERROR
エラーページ遷移時
REQUEST
リクエスト時
FORWARD
転送時
INCLUDE
別リソースのインクルード時
Section 4 セッション管理
セッションの取得
getSession
getSession(boolean)
引数:true
false
無い場合に、nullを返す
属性
getAttribute
setAttribute
removeAttribute
HttpSession
isNew
invalidate
setMaxInactiveInterval
秒指定
getCreationTime
getLastAccessedTime
web.xml
session-config
session-timeout
分指定
URLリライティング
URLの場合
HttpServletResponse#encodeURL
sendRedirectの場合
HttpServletResponse#encodeRedirectURL
イベント
HttpSessionEvent
HttpSessionListener
sessionCreated
sessionDestroyed
HttpSessionActivationListener
sessionDidActive
sessionWillPassivate
HttpSessionBindingEvent
getSessionメソッド
HttpSessionAttributeListener
HttpSessionBindingListener
valueBound
valueUnbound
web.xml
listener
Section 5 Webアプリケーションのセキュリティ
用語
認証
正当なユーザのみ利用可能
権限
ユーザに応じて機能を制限
ロール
権限の単位
機密性
認証されかつ、権限のあるユーザのみが利用可能
完全性
改ざん無く、整合性の取れている
認証方式
BASIC
Base64
DIGEST
CLIENT-CERT
SSLのクライアント証明書利用
FORM
j_security_check
j_username
j_password
web.xml
認証方式
login-config
auth-method
認証方式を設定
realm-name
領域名を指定
セキュリティロール
security-role
role-name
ロール名
ロールのマッピング
security-role-ref
role-name
role-link
Section 11 - Java EEパターン
プレゼンテーション層
Intercepting Filter
リクエスト・レスポンスの前後処理を可能とする
メリット
処理毎作成で、保守、拡張性の向上
変更、追加、組み合わせを柔軟に可能
フィルタ以外への影響を与えない
Front Controller
全てのリスクエストを受け付けるものを1つ用意する
メリット
共通ロジックの一元化
一元管理により保守性向上
ビジネス層
Business Delegate
ビジネス層を呼び出す際の複雑な手順を、Delegateに任せる。 クライアントはDeletegaのメソッドを呼び出すのみ
メリット
Service Locator
ビジネス層のルックアップ
Transfer Object
その他
MVC
メリット
役割が明確で、独立性の確保
依存性を抑え、再利用性を高める
依存性が低いので、保守性向上
Section 10 - カスタムタグライブラリの構築
tld
taglib
tlib-version:バージョン
short-name:略称
uri:taglibディレクティブでの指定値
tag
name:名前(JSPで使用)
tag-class:クラス名
body-content
empty
ボディ無し
JSP
JSPとして評価
tagdependent
評価しないでそのまま渡す
scriptless
テキスト,JSPタグ,ELは可、 スクリプティングは不可
variable
name-give
変数名
name-from-attribute
属性値を利用
variable-class
データ型(java.lang.String)
scope
AT_BEGIN
開始以降
AT_END
終了以降
NESTED
内部
description
declare
attribute
name
名前(必須)
required
必須(false)
rtexprvalue
式利用可(false)
fragment
フラグメント(false)
type
データ型(java.lang.String)
dynamic-attributes:動的属性
タグハンドラ
JspTagインターフェース
クラシックタグハンドラ
Tagインターフェース
メソッド
タグ処理ワークフロー関連
setPageContext
setParent
doStartTag
EVAL_BODY_INCLUDE
SKIP_BODY
doEndTag
SKIP_PAGE
EVAL_PAGE
release
親タグ
getParent
findAncestorWithClass
IteraionTagインターフェース
doAfterBody
EVAL_BODY_AGAIN
TagSupportクラス
pageContext変数(protected)
BodyTagインターフェース
setBodyContent
doInitBody
EVAL_BODY_BUFFERED
BodyContent
clearBody
getReader
getString
getEnclosingWriter
シンプルタグハンドラ
SimpleTagインターフェース
メソッド
doTag
getParent
SimpleTagSupport
getJspBody
findAncestorWithClass
PageContext
getOut:JspWriter
属性
tldへの定義
setterメソッド
指定方法
<タグ 名前="値"
<タグ> <jsp:attribute name="名前">値</jsp:attribute> <jsp:body>ないよう</jsp:body> </タグ>
DynamicAttributesインターフェース
setDynamicAttributeメソッド
スクリプティング変数
ハンドらクラス内の変数をJSPで利用可
タグファイル
tag, tagx
WEB-INF/tags(サブ可)
tld不要
使用方法
<%@ taglib tagdir="/WEB-INF/tags" prefix="" %>
<prefix:タグファイル名>
暗黙オブジェクト
jspContext
ディレクティブ
taglib
include
追加
tag(≒page+tld)
attribute
variable
専用アクションタグ
jsp:doBody
jsp:invoke
Section 6 JavaServer Pages(JSP)テクノロジーモデル
ディレクティブ
include
page
autoFlash
サブトピック 1
buffer
contentType
errorPage
extends
import
info
isELIgnored
isErrorPage
isThreadSafe
language
pageEncoding
session
taglib
スクリプトレット
<% %>
<jsp:scriptlet></
宣言
<%! %>
<jsp:declaration>
式
<%= %>
<jsp:expression>
ライフサイクル
jspInit
_jspService
jspDestroy
JSP暗黙オブジェクト
application
config
exception
out
page
pageContext
response
request
session
web.xml
jsp-config
taglib
jsp-property-group
deferred-syntax-allowd-as-literal
Section 7 式言語(EL)を使用したJSPページの構築
構文
${}
使用可
使用不可
スクリプトレット
式
宣言
暗黙オブジェクト
検索順
暗黙オブジェクト
page
request
session
application
EL Functions
tld
taglib
function
name
function-class
function-signature
ルール
public staticメソッド
Section 9 タグライブラリを使用したJSPページの構築
JSTL
core
out
default
escapeXML
value
set
property
scope
target
value
var
remove
scope
var
fmt
functions
sql
XML
taglibディレクティブ
<%@ taglib %>
prefix
接頭辞
uri
URI
<jsp:root ></jsp:root>
xmlns:接頭辞
URI
Section 8 標準アクションを使用したJSPページの構築
標準アクション
jsp:useBean
属性
id
class
type
beanName
scope
指定
classのみ
typeのみ
getAttributeを行うのみ
type, classの組み合わせ
type, beanNameの組み合わせ
jsp:setProperty
属性
name
property
*で自動マッピング
value
param
jsp:getProperty
jsp:forward
page
jsp:include
page