サーブレットの構成

Web アプリケーションには、アプリケーションの機能を構成するサーブレットを必要な数だけ入れることができます。このセクションでは、サーブレットをアプリケーションに追加する方法と、アプリケーション内のサーブレットの設定を変更する方法について説明します。

サーブレットの定義

サーブレットの追加または登録を行う場合、JMC でこれを定義してから JRun サーバを再起動し、コンテキスト パス内でサーブレットを認識させる必要があります。このセクションでは、JMC を使用してサーブレットを追加し、サーブレットごとの設定を変更する方法について説明します。また、JRun サーバを起動するときに、サーブレットをロードするかどうかを指定することも可能です。既定の設定では、サーブレットはプリロードされません。

サーブレットを定義するには

  1. JMC の左側ペインで、[マシン名] > [JRun サーバ名] > [Web アプリケーション] > [アプリケーション名] > [サーブレット定義] を選択します。

    [サーブレット定義] パネルを表示します。

  2. 右側ペインで、[編集] をクリックします。

    サーブレット定義の編集ウィンドウが表示されます。

  3. 次の表の説明に従ってプロパティを入力します。
    プロパティ
    説明
    名前
    サーブレット名を入力します。この値にはスペースや特殊文字を使用することはできません。たとえば、「DbFuncs」と入力します。
    このフィールドは必須です。
    クラス名
    サーブレットの完全修飾クラス名を入力します。たとえば、サーブレット名が DbFuncs で、これが allaire.jrun.rds というパッケージに入っている場合、「allaire.jrun.rds.DbFuncsServlet」と入力します。このフィールドは必須です。
    表示名
    JMC に表示されるサーブレットの短い名前を入力します。
    説明
    サーブレットの説明を入力します。このフィールドはオプションです。
    小さいアイコン
    このサーブレットを表す 16x16 ピクセルのアイコンの位置を指定します。この情報は、web.xml ファイルに保存されます。このプロパティは、所有するカタログのサーブレットをそれぞれのアイコンで表示する場合に使用するものです。このフィールドはオプションです。
    大きいアイコン
    このサーブレットを表す 32x32 ピクセルのアイコンの位置を指定します。この情報は、web.xml ファイルに保存されます。このプロパティは、所有するカタログのサーブレットをそれぞれのアイコンで表示する場合に使用するものです。このフィールドはオプションです。
    Init 引数
    このサーブレットに渡される初期化パラメータの一覧を入力します。
    アプリケーション変数エディタを使用して、アプリケーション内にあるすべてのサーブレットに同じパラメータを渡すことができます。詳細については、"アプリケーション パラメータの追加"を参照してください。このフィールドはオプションです。
  4. サーブレットに初期化パラメータを渡す必要がない場合は、[Init 引数] フィールドにある InitParam=Value プレースホルダを削除します。
  5. サーブレット定義を削除するには、[削除] チェック ボックスをオンにします。
  6. 変更を適用するには、[更新] ボタンをクリックします。
  7. サーバの起動時にサーブレットをロードするかどうかを指定するには、[サーブレット定義] パネルの [プリロードの順番の設定] をクリックします。

    [プリロードの順番] ダイアログ ボックスが表示されます。

    矢印キーを使用して、[プリロード] リストと [プリロードなし] リストの間でサーブ レットを移動します。次に、[ロード順の調節] 矢印をクリックして、リスト内で サーブレットを上下に移動します。

  8. [更新] ボタンをクリックして、変更を適用します。JRun により 1 から始まるプリロード番号が各サーブレットに割り当てられます。サーブレットは昇順にプリロードされます。
  9. JRun サーバを再起動します。

サーブレットをサーブレット定義の編集ウィンドウで変更した後で、このサーブレット名を変更するには、既存のサーブレットの定義をすべて削除し、再追加する必要があります。

サーブレットへの要求マッピング

JMC を使用すると、URL パターンにサーブレットをマッピングできます。

JRun で HTTP の要求を受信すると、サーブレット エンジンによって、定義済みコンテキスト パスと URL パターンが比較され、次にアプリケーション内にある登録済みサーブレットと URL パターンの次の部分が比較されます。最後に、残っているパス情報があれば、この情報がサーブレットに渡されて処理されます。パターンがどのコンテキスト パスにも一致しない場合、要求は既定のアプリケーションに渡されます。

また、ファイル拡張子をサーブレットにマッピングし、サーブレットのチェーンを構成して、1 つずつ実行することも可能です。次のセクションでは、JMC を使用してこれらのタスクを実行する方法について説明します。

JRun サーバによるファイルの処理方法と、URL 要求を解析する方法の詳細については、JRun によるアプリケー』を参照してションの開発ください。

サーブレットの URL マッピング

JRun を使用すると、サーブレットを URL 接頭辞にマッピングすることによって、HTTP の要求からサーブレットにアクセスする方法を制御できるようになります。JMC の使用により、次のことが実行できます。

既定の設定では、/servlet 接頭辞を含む HTTP の要求は
http://www.yourdomain.com/demo/servlet/SimpleServlet と同様に、invoker にマッピングされます。サーブレットにマッピングできる URL の数に制限はありません。

URL 接頭辞にサーブレットをマッピングするには

  1. JMC の左側ペインで、[マシン名] > [JRun サーバ名] > [Web アプリケーション] > [アプリケーション名] > [サーブレットURL のマッピング] をクリックします。

    [サーブレット URL のマッピング] パネルが表示されます。

  2. 右側ペインで、[編集] をクリックします。

    サーブレット URL のマッピングの編集ウィンドウが表示されます。

  3. [仮想パス/拡張子] フィールドに、サーブレットを呼び出す URL 接頭辞を入力します。たとえば、「/demo」や「/ShoppingCart」のように指定します。次のフィールドで指定されたサーブレットを、この Web アプリケーションの既定サーブレットとするには、「/」を入力します。
  4. [呼び出されたサーブレット] フィールドに、URL 接頭辞によって呼び出すサーブレットを入力します。呼び出されるサーブレットは、実際のサーブレットのエイリアスである場合もあります。エイリアスを定義するには、"サーブレットのエイリアス設定"を参照してください。
  5. サーブレットのマッピングを削除するには、[削除] チェック ボックスをオンにします。
  6. 変更を適用するには、[更新] ボタンをクリックします。
  7. JRun サーバを再起動します。

接尾辞を持つファイル拡張子のマッピング

JRun では、どのようなファイル拡張子でもサーブレットにマッピングできます。既定では、拡張子 *.jsp は暗黙的に invoker サーブレットにマッピングされていますが、明示的にマッピングすることによって書き換えることができます。

サーブレットのファイル拡張子をマッピングするには

  1. JMC の左側ペインで、[マシン名] > [JRun サーバ名] > [Web アプリケーション] > [アプリケーション名] > [サーブレット URL のマッピング] をクリックします。

    [サーブレット URL のマッピング] パネルが表示されます。

  2. [編集] をクリックします。

    サーブレット URL のマッピングの編集ウィンドウが表示されます。

  3. [仮想パス/拡張子] フィールドに、サーブレットにマッピングする拡張子を入力します。この拡張子を使用して要求されたすべてのファイルをサーブレットにマッピングするには、ワイルドカード文字 (*) を使用します。たとえば、「*.cfm」と入力します。
  4. [呼び出されたサーブレット] フィールドに、ファイル拡張子によって呼び出すサーブレットを入力します。このようなサーブレットは、サーブレットのエイリアスである場合もあります。"サーブレットのエイリアス設定"を参照してください。
  5. 変更を適用するには、[更新] ボタンをクリックします。
  6. JRun サーバを再起動します。

サーブレットのエイリアス設定

サーブレットの URL マッピングの編集ウィンドウを使用して、エイリアスでサーブレットを参照できます。これにより、サーブレットの実名など実装の詳細をユーザに対して非表示にできます。たとえば、ShoppingCart という名前のエイリアスに shop_05022001 という実名のサーブレットを参照させることができます。新しい名前を持つサーブレットの新しいバージョンを作成するには、1 か所のみ名前を変更します。

同様に、このサーブレットにエイリアスを設定する方法でサーブレットのチェーンも参照できます。詳細については、"エイリアスを使用したサーブレットのチェーン化"を参照してください。

このセクションでは、エイリアスを 1 つのサーブレットに割り当てる方法について説明します。

サーブレットに対してエイリアスを設定するには

  1. JMC の左側ペインで、[マシン名] > [JRun サーバ名] > [Web アプリケーション] > [アプリケーション名] > [サーブレット URL のマッピング] をクリックします。

    [サーブレット URL のマッピング] パネルが表示されます。

  2. 右側ペインで、[編集] をクリックします。

    サーブレット URL のマッピングの編集ウィンドウが表示されます。

  3. [仮想パス/拡張子] フィールドに、サーブレットを指示するエイリアスを入力します。たとえば、「ShoppingCart」と入力します。
  4. [呼び出されたサーブレット] フィールドに、エイリアスによって参照されるサーブレット名を入力します。たとえば、「shop_05022000」と入力します。
  5. サーブレットのエイリアスを削除するには、[削除] チェック ボックスをオンにします。
  6. 変更を適用するには、[更新] ボタンをクリックします。
  7. JRun サーバを再起動します。

サーブレットのチェーン化

JRun ではサーブレットのチェーン化がサポートされています。この機能を使用すると、あるサーブレットの出力をほかのサーブレットの入力として使用できます。最も基本的なサーブレット チェーン化の方法は、要求を行うときにサーブレットを、カンマ区切りリストとしてパス情報に追加することです。

たとえば、次の要求によって Servlet1 が実行され、その出力が Servlet2 に送信されます。

http://www.yourdomain.com/servlet/Servlet1,Servlet2

この簡単なチェーン化方法では実用的でない場合もあります。JRun でのサーブレットのチェーン化には、このほかに次の 2 種類の方法があります。

後続のセクションで、JRun でサーブレットをチェーン化するこれらの方法について説明します。

エイリアスを使用したサーブレットのチェーン化

JRun では、1 つの名前、つまりエイリアスで、チェーンを形成するサーブレット リストを表すことができます。これはエイリアス設定と呼ばれます。

エイリアス設定を使用してサーブレットをチェーン化するには

  1. JMC の左側ペインで、[マシン名] > [JRun サーバ名] > [Web アプリケーション] > [アプリケーション名] > [サーブレット URL のマッピング] をクリックします。

    [サーブレット URL のマッピング] パネルが表示されます。

  2. 右側ペインで、[編集] をクリックします。

    サーブレット URL のマッピングの編集ウィンドウが表示されます。

  3. [仮想パス/拡張子] フィールドで、サーブレットのチェーンを呼び出すエイリアスを指定します。たとえば、「/Samples」と入力します。
  4. [呼び出されたサーブレット] フィールドに、実行順に並べられたサーブレットをカンマ区切りリストとして入力します。

    たとえば、SnoopServlet からの出力を UpperCaseFilter に送信するチェーンを作成 する場合は、「SnoopServlet, UpperCaseFilter」と入力します。

  5. サーブレットのチェーンを削除するには、[削除] チェック ボックスをオンにします。
  6. 変更を適用するには、[更新] ボタンをクリックします。
  7. JRun サーバを再起動します。

MIME タイプ フィルタリングでのサーブレットのチェーン化

応答タイプの設定だけではなく、MIME タイプのマッピングを使用しても、サーブレット チェーンを実行できます。しかし、エイリアスを使用する場合のように、要求に基づいてどのサーブレットをチェーン化するのかを明確に指定するのではなく、サーブレットやサーブレット チェーンの実行をトリガする送信 MIME タイプを指定します。

たとえば、text/plain MIME タイプを UpperCaseFilter サーブレットにマッピングすると、このアプリケーションで text/plain というコンテンツ タイプで応答するサーブレットがすべて、UpperCaseFilter にチェーン化されます。コンテキスト タイプ text/plain で応答するその他のタイプの要求でも、UpperCaseFilter サーブレットが起動されるため注意が必要です。

ある応答の出力が JRun サーバでフィルタリングされ、別のサーブレットやサーブレット チェーンに渡されるので、このプロセスはフィルタリング と呼ばれます。

MIME タイプ フィルタリングでサーブレットをチェーン化するには

  1. JMC の左側ペインで、[マシン名] > [JRun サーバ名] > [Web アプリケーション] > [アプリケーション名] > [MIME タイプのチェーン化] をクリックします。

    [MIME タイプのチェーン化] パネルが表示されます。

  2. 右側ペインで、[編集] をクリックします。

    MIME タイプのチェーン化の編集ウィンドウが表示されます。

  3. [MIME タイプ] フィールドに、MIME タイプを xxx/yyy の形式で入力します。たとえば、次のように設定します。

    text/vnd.wap.wml

    text/plain

    text/html

    image/gif

    image/jpg

  4. [呼び出されたサーブレット] フィールドには、MIME タイプにより呼び出されるサーブレット (またはエイリアス) の名前を入力します。このフィールドにはサーブレットのチェーンをカンマで区切って入力することも可能です。たとえば「UpperCaseFilter, SpellCheckFilter」と指定します。
  5. MIME フィルタを削除するには、[削除] チェック ボックスをオンにします。
  6. 変更を適用するには、[更新] ボタンをクリックします。
  7. JRun サーバを再起動します。

MIME タイプの例:WML

JRun を WML (Wireless Markup Language) ページを読み込むように設定するには、JMC を使用して次の拡張子を MIME タイプにマッピングします。
拡張子
MIME タイプ
bmp
image/bmp
wbmp
image/vnd.wap.wbmp
wmls
text/vnd.wap.wmlscript
wml
text/vnd.wap.wml

Web アプリケーションの web.xml ファイルへのエントリは、次のようになります。

<mime-mapping>
<extension>bmp</extension>
<mime-type>image/bmp</mime-type>
</mime-mapping>
<mime-mapping>
<extension>wbmp</extension>
<mime-type>image/vnd.wap.wbmp</mime-type>
</mime-mapping> <mime-mapping> <extension>wmls</extension> <mime-type>text/vnd.wap.wmlscript</mime-type> </mime-mapping> <mime-mapping> <extension>wml</extension> <mime-type>text/vnd.wap.wml</mime-type> </mime-mapping>

SSI タグレットの使用

JRun には、サーバ側インクルード (SSI) タグレットを使用して HTML ファイルに Java サーブレットを埋め込むオプションが用意されています。タグレットにより、SHTML ファイルで固有のタグをフレキシブルに定義し、実装できます。

SSI は、以前はダイナミック コンテンツの作成に広く使用されていました。JRun では主に古い実装をサポートする目的で使用します。現在では、JavaServer Pages (JSP) および Java サーブレット テクノロジが タグレット付きの SSI の代わりに使用されるようになり、機能的にも大幅に拡張されています。

このセクションでは、JRun で使用する SSI タグレットの構成方法について説明します。SSI タグレットの使用の詳細については、『JRun によるアプリケーションの開発』を参照してください。

SSI を構成するには

  1. JMC の左側ペインで、[マシン名] > [JRun サーバ名] > [Web アプリケーション] > [アプリケーション名] > [サーバ側インクルード] を選択します。

    [サーバ側インクルードの設定] パネルが表示されます。

  2. [編集] をクリックします。

    サーバ側インクルードの設定の編集ウィンドウが表示されます。

  3. 次の表の説明に従ってプロパティを入力します。
    プロパティ
    説明
    タグレット名
    タグレット名を入力します。たとえば、「foo」と入力します。サーブレットを呼び出す場合は、Web ページで次のコードを使用します。
    <foo></foo>
     
    
    サーブレット
    マッピング
    タグレットによって参照されるサーブレットを入力します。たとえば、「SnoopServlet」と入力します。この結果、<foo> タグレットを Web ページで使用すると、SnoopServlet サーブレットが呼び出されます。
  4. SSI タグレットのマッピングを削除するには、[削除] チェック ボックスをオンにします。
  5. 変更を適用するには、[更新] ボタンをクリックします。
  6. JRun サーバを再起動します。