―BEA WebLogic Server編―
■web.xml
<?xml version="1.0" charset="Shift_JIS"
?>
<!DOCTYPE web-app PUBLIC "-//Sun
Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<description>...</description>
<!-- context
parameter の定義 -->
<context-param> <!--
* -->
<param-name>...</param-name>
<param-value>...</param-value>
</context-param>
<!-- servlet の定義 -->
<servlet> <!--
* -->
<servlet-name>...</servlet-name>
<description>...</description>
<servlet-class>...</servlet-class>
<init-param> <!-- * -->
<param-name>...</param-name>
<param-value>...</param-value>
</init-param>
<!-- デプロイ時に JSP/Servlet をロードさせる順番 -->
<load-on-startup>n</load-on-startup> <!--
? -->
<!-- コードで使用する security role のマッピング -->
<security-role-ref> <!--
* -->
<role-name>...</role-name>
<role-link>...</role-link>
</security-role-ref>
</servlet>
<!-- JSP の定義 -->
<servlet> <!--
* -->
<servlet-name>...</servlet-name>
<description>...</description>
<jsp-file>....jsp</jsp-file>
<init-param> <!--
* -->
<param-name>...</param-name>
<param-value>...</param-value>
</init-param>
<load-on-startup>n</load-on-startup> <!--
? -->
<security-role-ref> <!--
* -->
<role-name>...</role-name>
<role-link>...</role-link>
</security-role-ref>
</servlet>
<!-- servlet/JSP の URL マッピング -->
<servlet-mapping> <!--
* -->
<servlet-name>...</servlet-name>
<url-pattern>/...</url-pattern>
</servlet-mapping>
<!-- session タイムアウト時間 (分単位) : デフォルトは 60 分 -->
<session-config> <!--
? -->
<session-timeout>60</session-timeout>
</session-config>
<!-- mime マッピング -->
<mime-mapping> <!--
* -->
<extension>...</extension>
<mime-type>...</mime-type>
</mime-mapping>
<!-- welcome ページ -->
<welcome-file-list> <!--
? -->
<welcome-file>...</welcome-file>
<!-- + -->
</welcome-file-list>
<!-- error ページ -->
<error-page> <!--
* -->
<error-code>...</error-code>
<location>/...</location>
</error-page>
<error-page> <!--
* -->
<exception-type>...</exception-type>
<location>/...</location>
</error-page>
<!-- taglib の定義 -->
<taglib> <!--
* -->
<taglib-uri>...</taglib-uri>
<taglib-location>...</taglib-location>
</taglib>
<!-- resource references:
java:comp/env/... -->
<resource-ref> <!--
* -->
<res-ref-name>jdbc/...</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>CONTAINER or SERVLET</res-auth>
</resource-ref>
<!-- URL へのアクセス制御 -->
<security-constraint> <!--
* -->
<web-resource-collection>
<web-resource-name>...</web-resource-name>
<url-pattern>/...</url-pattern>
<!-- * -->
<http-method>GET or POST</http-method>
<!-- * -->
</web-resource-collection>
<auth-constraint>
<role-name>...</role-name>
<!-- * -->
</auth-constraint>
<user-data-constraint> <!--
? -->
<transport-guarantee>
NONE or INTEGRAL or CONFIDENTIAL
</transport-guarantee>
</user-data-constraint>
</security-constraint>
<!-- ユーザ認証方法 -->
<login-config> <!--
? -->
<auth-method>
BASIC or FORM or CLIENT-CERT
</auth-method>
<realm-name>...</realm-name> <!--
? -->
<form-login-config> <!--
? -->
<form-login-page>/...</form-login-page>
<form-error-page>/...</form-error-page>
</form-login-config>
</login-config>
<!-- security roles の定義
-->
<security-role> <!--
* -->
<role-name>...</role-name>
</security-role>
<!-- env entries の定義: java:comp/env/... -->
<env-entry> <!--
* -->
<env-entry-name>...</env-entry-name>
<env-entry-value>...</env-entry-value>
<env-entry-type>...</env-entry-type>
</env-entry>
<!-- ejb refernces の定義:
java:comp/env/... -->
<ejb-ref> <!--
* -->
<ejb-ref-name>ejb/...EJB</ejb-ref-name>
<ejb-ref-type>Session or Entity</ejb-ref-type>
<home>...</home>
<remote>...</remote>
<ejb-link>...</ejb-link> <!--
? -->
</ejb-ref>
</web-app>
|
■web.xmlの補足
●DOCTYPE 宣言
製品をインストールするとデフォルトの管理サーバ(Administration Server)のdefault
web application が作成されます。このweb.xml (デフォルトでconfig/mydomain/applications/DefaultWebApp_myserver/
WEB-INF/web.xml)は、DOCTYPE 宣言の公開識別子が “-//Sun Microsystems, Inc.//DTD
Web Application 1.2//EN” となっていますが、このバージョン番号 “1.2” は“2.2”の誤りです。
●servlet/JSP定義
ともに<servlet>で宣言します。テンプレートでは別々に記載していますが、両者の違いは
<servlet-class>でservletのclassを指定するか、<jsp-file>でJSPのファイル名を指定するかだけです。JSP
に関しては、初期化パラメータ<init-param>やURLのマッピング<servlet-mapping>などの設定が必要なければweb.xmlで宣言する必要はありません。
●参照の定義
<security-role-ref>、<security-role>、<resource-ref>、<ejb-ref>
は、servlet/JSP がロール、リソース、EJB を参照する際にコード内で使用する名前と、Web Application がデプロイされた環境における実体の名前(レルムやJNDIの登録名)とをマッピングするための仕組みを提供します。
デプロイメント・ディスクリプタでマッピングを行うことで、異なる環境にデプロイする際にコード内の参照名を変更する必要をなくすのが狙いです。なお、<resource-ref>では
JDBCデータソースへの参照を定義することがほとんどだと思いますので、データソース用の記述を埋め込んであります。
●セキュリティ設定
<security-constraint>、<login-config>、<security-role>
に関しては、今後この連載の中で例を示して説明する予定です。
●<taglib>
カスタム・タグと <taglib> についても別の機会に解説する予定です。
本稿に関するご質問やご意見は下記のメールアドレスまでお願いします。
|