JAVA EE デプロイメントディスクリプタ

デプロイメントディスクイプタとは?

Deployment Descriptor
配置記述子
アプリケーション全体で利用する設定情報ファイル
Tomcatの場合web.xml
・ アプリケーション全体で利用する変数
・ ウェルカムページ、エラーページ
・ 認証情報
等を設定する

記述方法

<?xml version="1.0" encoding="UTF-8" ?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 version="3.0">
 設定値を記述
 ~
</web-app>

サーブレット登録

<servlet>
 <servlet-name>MyServlet</servlet-name>
 <servlet-class>MyPack.MyServlet</servlet-class>
 ドキュメントルート以下のパッケージから下の階層を記述
</servlet>
<servlet-mapping>
 <servlet-name>MyServlet</servlet-name>
 <url-pattern>/MyPack/MyServlet</url-pattern>
 ドキュメントルート以下のパッケージから下の階層を記述
</servlet-mapping>

初期化パラメータ

<context-param>
 <param-name>myparam.prm1</param-name>
 <param-value>システム開発</param-value>
 <param-name>myparam.prm2</param-name>
 <param-value>ホームページ作成</param-value>
 <param-name>myparam.prm3</param-name>
 <param-value>インフラ構築</param-value>
</context-param>
※JSPファイル
<%
 String prm1 = application.getInitParameter("myparam.prm1");
 String prm2 = application.getInitParameter("myparam.prm2");
 String prm3 = application.getInitParameter("myparam.prm3");
%>
<%=prm1 %>
→ システム開発
<%=prm2 %>
→ ホームページ作成
<%=prm3 %>
→ インフラ構築

セッション期限

<session-config>
 <session-timeout>10</session-timeout>
 単位:分
</session-config>

エラーページ

<error-page>
 <exception-type>java.lang.exception</exception-type>
 <location>/ErrorServlet</location>
 例外発生時にErrorServletへ遷移
</error-page>
<error-page>
 <error-code>404</error-code>
 <location>/ErrorServlet</location>
 404エラー発生時にErrorServletへ遷移
</error-page>

認証

以下の設定が必要
<web-app>
 …
 <security-constraint>
  …
 </security-constraint>
 <login-config>
  …
 </login-config>
 <security-role>
  …
 </security-role>
</web-app>

制限領域

<security-constraint>
 <web-resource-collection>
  <web-resource-name>MyJava</web-resource-name>
  <url-pattern>/MyPackage/auth/*</url-pattern>
  <http-method>GET</http-method>
  <http-method>POST</http-method>
 </web-resource-collection>
</security-constraint>

ロール

<security-constraint>
 <auth-constraint>
  <role-name>admin-gui</role-name>
  <role-name>manager-gui</role-name>
 </auth-constraint>
</security-constraint>

基本認証

<login-config>
 <auth-method>BASIC</auth-method>
 <realm-name>MyJava</realm-name>
 制限領域:web-resource-nameを指定
</login-config>

フォーム認証

<login-config>
 <auth-method>FORM</auth-method>
 <form-login-config>
  <form-login-page>/myPackage/login.jsp</form-login-page>
  <form-error-page>/myPackage/login_err.jsp</form-error-page>
 </form-login-config>
</login-config>

コメントを残す

メールアドレスが公開されることはありません。