「2.3 配備記述子の要素に対応する正しい構造を構築する」の版間の差分
| (同じ利用者による、間の1版が非表示) | |||
| 1行目: | 1行目: | ||
| − | + | [http://java.sun.com/xml/ns/j2ee/j2ee_1_4.xsd j2ee_1_4.xsd] | |
| − | + | [http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd web-app_2_4.xsd] | |
| − | + | [http://java.sun.com/xml/ns/j2ee/jsp_2_0.xsd jsp_2_0.xsd] | |
====error-page==== | ====error-page==== | ||
| − | + | エラーコードもしくは例外を[[Webアプリケーション]]のリソースと結びつける | |
=====error-code===== | =====error-code===== | ||
| − | 例えば 404 | + | 例えば 404 のような、[[HTTP]]エラーコードを指定する |
=====exception-type===== | =====exception-type===== | ||
| − | + | [http://java.sun.com/docs/books/jls/third_edition/html/binaryComp.html#13.1 javaクラスまたはインターフェース名]を指定する。この名前は、Class.forName() から利用される | |
=====location===== | =====location===== | ||
| − | '/' | + | '/' で始まる、[[Webアプリケーション]]ルートからの相対パスでリソースを指定する |
=====例===== | =====例===== | ||
| 44行目: | 44行目: | ||
|javax.servlet.error.exception | |javax.servlet.error.exception | ||
|- | |- | ||
| − | | | + | |リクエストU[[R]]I |
|javax.servlet.error.request_uri | |javax.servlet.error.request_uri | ||
|- | |- | ||
| 82行目: | 82行目: | ||
servlet.Section2_3Servlet.java | servlet.Section2_3Servlet.java | ||
| − | * | + | *ServletConfig経由で、[[初期化パラメータ]]を取得できる |
*GenericServletクラスは、ServletConfigを実装しているため、HttpServletから直接、getInitParameter()メソッドなど利用することも可能 | *GenericServletクラスは、ServletConfigを実装しているため、HttpServletから直接、getInitParameter()メソッドなど利用することも可能 | ||
| 93行目: | 93行目: | ||
====mime-mapping==== | ====mime-mapping==== | ||
拡張子とMIMEタイプのマッピングを定義 | 拡張子とMIMEタイプのマッピングを定義 | ||
| − | + | [http://www.ietf.org/rfc/rfc2045.txt RFC 2045 Multipurpose Internet Mail Extensions] | |
| − | + | [http://www.iana.org/assignments/media-types/ MIME Media Types] | |
=====extension===== | =====extension===== | ||
拡張子 | 拡張子 | ||
| 108行目: | 108行目: | ||
上記のように指定すると、レスポンスヘッダーにContent-Type が出力される | 上記のように指定すると、レスポンスヘッダーにContent-Type が出力される | ||
| − | HTTP/1.1 200 OK | + | [[HTTP]]/1.1 200 OK |
| − | Server: Apache-Coyote/1.1 | + | Server: [[Apache]]-Coyote/1.1 |
ETag: W/"240-1145124316909" | ETag: W/"240-1145124316909" | ||
Last-Modified: Sat, 15 Apr 2006 18:05:16 GMT | Last-Modified: Sat, 15 Apr 2006 18:05:16 GMT | ||
| 118行目: | 118行目: | ||
====servlet==== | ====servlet==== | ||
サーブレットの宣言に利用。サーブレットに対する宣言型のデータを含む。 | サーブレットの宣言に利用。サーブレットに対する宣言型のデータを含む。 | ||
| − | jsp-file を定義して、load-on-startup | + | jsp-file を定義して、load-on-startup 要素が存在する場合、[[JSP]]は事前にコンパイルされ、ロードされる必要がある。 |
=====servlet-name===== | =====servlet-name===== | ||
| − | + | サーブレットの名を指定する。サーブレット名は、[[Webアプリケーション]]内で一意である必要がある。 | |
=====[#p4 servlet-class]===== | =====[#p4 servlet-class]===== | ||
| − | + | [http://java.sun.com/docs/books/jls/third_edition/html/binaryComp.html#13.1 javaクラスまたはインターフェース名。]を指定する。この名前は、Class.forName() から利用される。 | |
=====jsp-file===== | =====jsp-file===== | ||
| − | + | [[Webアプリケーション]]のJSPファイルの'/'から始まるフルパスを指定する。 | |
=====[#p1 init-param]===== | =====[#p1 init-param]===== | ||
| − | + | [#p1 サーブレット、フィルター 初期化用の名前と値のペアを指定] | |
=====load-on-startup===== | =====load-on-startup===== | ||
| − | + | [[Webアプリケーション]]が起動時にサーブレットがロードされているべきかを指示する。 | |
{|class="wikitable" | {|class="wikitable" | ||
!値 | !値 | ||
| 159行目: | 159行目: | ||
指定する | 指定する | ||
====servlet-mapping==== | ====servlet-mapping==== | ||
| − | + | サーブレットとU[[R]]Lパターンのマッピングを定義する | |
=====[#p3 servlet-name]===== | =====[#p3 servlet-name]===== | ||
servlet 要素で定義されるサーブレット名を指定 | servlet 要素で定義されるサーブレット名を指定 | ||
=====url-pattern===== | =====url-pattern===== | ||
| − | servlet | + | servlet に結び付けられるU[[R]]Lのパターン |
[[File:0088_mapping_url_servlet.jpg]] | [[File:0088_mapping_url_servlet.jpg]] | ||
| 170行目: | 170行目: | ||
!名称 | !名称 | ||
!内容 | !内容 | ||
| − | ! | + | !HttpServlet[[R]]equest が提供するメソッド |
|- | |- | ||
|Context path | |Context path | ||
| − | | | + | |リクエストURIの先頭から[[Webアプリケーション]]名と一致するできるだけ長い部分。一致しない場合、デフォルトアプリケーションに結びつけられる。 |
|getContextPath() | |getContextPath() | ||
|- | |- | ||
|Servlet path | |Servlet path | ||
| − | | | + | |リクエストU[[R]]Iの先頭から、Context path 部分を除いた残りから、サーブレットマッピングに一致するできるだけ長い部分。一致しない場合、エラーページが返される。 |
|getServletPath() | |getServletPath() | ||
|- | |- | ||
| 186行目: | 186行目: | ||
|} | |} | ||
| − | # | + | #[[R]]equest U[[R]]I = context path + servlet + path info |
#コンテキストパス、サーブレットパスは '/' で始まるが、'/' では終わらない | #コンテキストパス、サーブレットパスは '/' で始まるが、'/' では終わらない | ||
| 214行目: | 214行目: | ||
1. 完全に一致 | 1. 完全に一致 | ||
/scwcd/sec2_3 | /scwcd/sec2_3 | ||
| − | 2. | + | 2. U[[R]]Lのツリーを下って一致 |
/scwcd/sec2/subsec3/about_servletmapping | /scwcd/sec2/subsec3/about_servletmapping | ||
3. 拡張子が一致 | 3. 拡張子が一致 | ||
| 221行目: | 221行目: | ||
/scwcd/s2/sb3/about_servletmapping/extent.map/pathinfo | /scwcd/s2/sb3/about_servletmapping/extent.map/pathinfo | ||
====servlet-name==== | ====servlet-name==== | ||
| − | + | サーブレット名を指定する。サーブレット名は[[Webアプリケーション]]内で一意になるように設定する。 | |
====welcome-file==== | ====welcome-file==== | ||
index.htmlのような、デフォルトのウェルカムファイルを指定する。 | index.htmlのような、デフォルトのウェルカムファイルを指定する。 | ||
| 229行目: | 229行目: | ||
</welcome-file-list> | </welcome-file-list> | ||
---- | ---- | ||
| − | 2.4 WARファイルの目的およびコンテンツ、構造についての説明 | + | [[2.4 WARファイルの目的およびコンテンツ、構造についての説明]] |
{{amazon|1932394389}} | {{amazon|1932394389}} | ||
| − | + | [http://www.amazon.co.jp/dp/1932394389?tag=typea09-22&link_code=as3&creativeASIN=1932394389&creative=3999&camp=767 SCWCD Exam Study Kit: Java Web Component Developer Certification (ペーパーバック)] | |
2020年2月16日 (日) 04:21時点における最新版
j2ee_1_4.xsd web-app_2_4.xsd jsp_2_0.xsd
目次
error-page
エラーコードもしくは例外をWebアプリケーションのリソースと結びつける
error-code
例えば 404 のような、HTTPエラーコードを指定する
exception-type
javaクラスまたはインターフェース名を指定する。この名前は、Class.forName() から利用される
location
'/' で始まる、Webアプリケーションルートからの相対パスでリソースを指定する
例
- error-page は複数指定できる
- error-code または exception-type のどちらかを指定
web.xml
<error-page> <error-code>404</error-code> <location>/jsp/Section2_3_error.jsp</location> </error-page> <error-page> <exception-type>java.lang.NumberFormatException</exception-type> <location>/jsp/Section2_3_error.jsp</location> </error-page>
- サーブレットコンテナが、エラー発生時に以下の情報をリクエストにセットする
| 内容 | キー |
|---|---|
| ステータスコード | javax.servlet.error.status_code |
| 例外の型 | javax.servlet.error.exception_type |
| メッセージ | javax.servlet.error.message |
| 例外 | javax.servlet.error.exception |
| リクエストURI | javax.servlet.error.request_uri |
| 例外が発生したサーブレット | javax.servlet.error.servlet_name |
jsp
ステータスコード
<%= request.getAttribute("javax.servlet.error.status_code") %>
- Internet Explorer の場合、Microsoft HTTP エラーメッセージを簡易表示する にチェックが入っていると、エラーコードに対応する応答バイト数が閾値を超えない場合、(エラーコードにより、256、512・・・) web.xml に、error-page を設定しても、 Microsfot のデフォルトのエラーページが表示されてしまうので注意
init-param
サーブレット、フィルター 初期化用の名前と値のペアを指定する
description
説明等の記述
param-name
パラメータ名
param-value
パラメータ値
例
web.xml
<servlet>
<servlet-name>Section2_3Servlet</servlet-name>
<servlet-class>servlet.Section2_3Servlet</servlet-class>
<init-param>
<param-name>auther</param-name>
<param-value>YAGI Hiroto</param-value>
</init-param>
<init-param>
<param-name>created</param-name>
<param-value>2006-04-16 02:31</param-value>
</init-param>
</servlet>
servlet.Section2_3Servlet.java
- ServletConfig経由で、初期化パラメータを取得できる
- GenericServletクラスは、ServletConfigを実装しているため、HttpServletから直接、getInitParameter()メソッドなど利用することも可能
ServletConfig config = getServletConfig();
Enumeration paramNames = config.getInitParameterNames();
while (paramNames.hasMoreElements()) {
String key = (String) paramNames.nextElement();
out.print( config.getInitParameter(key) );
}
mime-mapping
拡張子とMIMEタイプのマッピングを定義 RFC 2045 Multipurpose Internet Mail Extensions MIME Media Types
extension
拡張子
mime-type
MIMEタイプ
例
<mime-mapping> <extension>csv</extension> <mime-type>application/vnd.ms-excel</mime-type> </mime-mapping>
上記のように指定すると、レスポンスヘッダーにContent-Type が出力される
HTTP/1.1 200 OK Server: Apache-Coyote/1.1 ETag: W/"240-1145124316909" Last-Modified: Sat, 15 Apr 2006 18:05:16 GMT Content-Type: application/vnd.ms-excel Content-Length: 240 Date: Sat, 15 Apr 2006 18:24:42 GMT Connection: close
servlet
サーブレットの宣言に利用。サーブレットに対する宣言型のデータを含む。 jsp-file を定義して、load-on-startup 要素が存在する場合、JSPは事前にコンパイルされ、ロードされる必要がある。
servlet-name
サーブレットの名を指定する。サーブレット名は、Webアプリケーション内で一意である必要がある。
[#p4 servlet-class]
javaクラスまたはインターフェース名。を指定する。この名前は、Class.forName() から利用される。
jsp-file
WebアプリケーションのJSPファイルの'/'から始まるフルパスを指定する。
[#p1 init-param]
[#p1 サーブレット、フィルター 初期化用の名前と値のペアを指定]
load-on-startup
Webアプリケーションが起動時にサーブレットがロードされているべきかを指示する。
| 値 | 内容 |
|---|---|
| load-on-startup 要素なし または 負の整数 | サーブレットが呼び出された場合にロード |
| 0 または 正の整数 | サーブレットコンテナは、ロードと初期化をアプリケーションのデプロイ時に行う。また、数値が小さい順にロードする。 |
run-as
run-as ID はコンポーネントの実行に使用するために設定する 次の下位要素を含む
- description
- role-name
security-role-ref
コンポーネントのコードから参照される、セキュリティロールの宣言を行う 次の下位要素を含む
- description
- role-name
- role-link
例
- servlet-class もしくは jsp-file のいずれかを選ぶ
servlet-class
サーブレットの[完全限定名(fully qualified name)|http://www.y-adagio.com/public/standards/tr_javalang2/names.doc.html#25430 指定する
servlet-mapping
サーブレットとURLパターンのマッピングを定義する
[#p3 servlet-name]
servlet 要素で定義されるサーブレット名を指定
url-pattern
servlet に結び付けられるURLのパターン
| 名称 | 内容 | HttpServletRequest が提供するメソッド |
|---|---|---|
| Context path | リクエストURIの先頭からWebアプリケーション名と一致するできるだけ長い部分。一致しない場合、デフォルトアプリケーションに結びつけられる。 | getContextPath() |
| Servlet path | リクエストURIの先頭から、Context path 部分を除いた残りから、サーブレットマッピングに一致するできるだけ長い部分。一致しない場合、エラーページが返される。 | getServletPath() |
| Path info | Servlet path を除いた残り。 | getPathInfo() |
例
web.xml
<servlet> <servlet-name>Section2_3Servlet2</servlet-name> <servlet-class>servlet.Section2_3Servlet2</servlet-class> </servlet> <servlet-mapping> <servlet-name>Section2_3Servlet2</servlet-name> <url-pattern>/sec2_3</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Section2_3Servlet2</servlet-name> <url-pattern>/sec2/subsec3/*</url-pattern> <!-- '*' が必要 --> </servlet-mapping> <servlet-mapping> <servlet-name>Section2_3Servlet2</servlet-name> <url-pattern>*.map</url-pattern> </servlet-mapping>
呼び出し例 (context path は /scwcd とする)
1. 完全に一致 /scwcd/sec2_3 2. URLのツリーを下って一致 /scwcd/sec2/subsec3/about_servletmapping 3. 拡張子が一致 /scwcd/s2/sb3/about_servletmapping/extent.map 4. 一致しない /scwcd/s2/sb3/about_servletmapping/extent.map/pathinfo
servlet-name
サーブレット名を指定する。サーブレット名はWebアプリケーション内で一意になるように設定する。
welcome-file
index.htmlのような、デフォルトのウェルカムファイルを指定する。
<welcome-file-list> <welcome-file>welcome.html</welcome-file> </welcome-file-list>
2.4 WARファイルの目的およびコンテンツ、構造についての説明
SCWCD Exam Study Kit: Java Web Component Developer Certification (ペーパーバック)
© 2006 矢木浩人


