i ntra-mart The Power for Enterprise Web Solution
動作概要
【 JavaServerPages(Servlet) 篇 】

前提

ここでは、ブラウザを使い intra-mart のJSPまたはServletに対してアクセスした場合の動作仕様を説明します。

intra-mart に対して Web アクセスするためには、intra-mart Application Server, intra-mart File Server, intra-mart Information Server および intra-mart Web-Server Connector(StandAlone 型の場合は必要ありません) をインストールして正しく動作していることが必要になります。



動作に必要なプログラム(初期起動)

intra-mart Application Server の初期起動時には、指定のファンクションコンテナを実行します。

初期起動時に実行したいプログラムを記述したファンクションコンテナを適切なディレクトリに保存して、適切に呼び出されるようにしてください。
初期起動時にアプリケーション(共通関数など)の初期化や初期設定などを実行すると有効です。

注意1)初期化プログラム内では、データベースアクセスができません。初期起動時にデータベースアクセスをする必要のあるプログラムは、データベースアクセス前に、必ずデータベース接続APIを実行し、データベースアクセスAPIに対して、接続参照名を明示的に指定するようにして下さい。

注意2)ファンクションコンテナと連携する必要がない場合には、特に設定や作業はいりません。


動作に必要なプログラム(Web ページ)

ブラウザから HTTP リクエストにより J2EE開発モデルのプログラムが実行される場合、ページを作成するために必要な JSP または Servlet クラスを実行します。
JSP や Servlet のソースファイルは、プログラムが実行される Application Server が動作しているコンピュータに保存します。Information Server にプログラムを保存しても自動配信はされませんのでご注意下さい。

JavaServerPages ページプログラムは、拡張子 *.jsp(XML 形式で記述する場合 *.xtp)となります。また、実行可能なディレクトリ(Application Server のインストールディレクトリ/doc/)に保存する事で実行する事ができます。

Servlet は、クラスファイルに対してクラスパスを通し(Application Server のインストールディレクトリ直下の lib/ はクラスパスとして設定してありますので、lib/ にファイルを保存するだけでも有効になります)、URLとの関連付けを conf/imart.conf で定義することで実行する事ができます。

ブラウザから直接リンクをする場合は、該当のファイルを Web-Server Connector をインストールしたディレクトリ内に保存して下さい。
(画像ファイルなども、これに該当します。)



実行シーケンス(JSP)

ブラウザからリクエストがあった場合、以下のように処理が流れます。

  1. ブラウザからのリクエスト受付
  2. JSP ソースのコンパイル
  3. JSP の実行
  4. ページ返却

初めてリクエストされた場合 JSP ソースを JAVA のクラスにコンパイルするので、レスポンスに時間がかかりますが、以後はクラスがメモリ内に常駐しますので高速に動作します。また、1度作成された JAVA クラスは、ファイルとして保存され、サーバ再起動後も保存されているクラスファイルを実行します。ただし、JSP ソースが更新された場合は、保存されていたクラスファイルは破棄され、更新されたソースをもとにコンパイルが行われます。



実行シーケンス(Servlet)

ブラウザからリクエストがあった場合、以下のように処理が流れます。

  1. ブラウザからのリクエスト受付
  2. Servlet クラス の実行
  3. ページ返却

実行前に以下の準備が必要です。

  • java ソースのコンパイル
  • クラスパスの設定
  • URLとクラスのマッピングを設定

Servlet クラスを作り直したり、設定を変更した場合には、Application Server の再起動が必要です。

Servlet クラスは、1度実行されるとメモリ内にクラスが保持されますので、高速に動作します。


メニューとの連携

JSP (または Servlet) をメニューに登録した場合、ログインユーザがメニューから JSP (または Servlet) のページを選択した場合、呼び出されたページプログラムには以下の引数がURL引数として渡されます。

id セッションID
account 現在作業中ユーザのユーザID
group 現在作業中ユーザの所属ログイングループID
referrer intra-mart のページベース開発モデルによって作成されたページを呼び出すためのURL
caller プログラムを呼び出したページ(メニューのページパス)
argument メニューのメンテナンス画面で設定されているページ引数

上記のうち、再びページベース開発モデルにより作成された画面を呼び出す(ページベース開発モデルとの相互連携)ためには、id, referrer が必要です。また、ファンクションコンテナと相互連携(JavaScript により提供されているAPIを利用)するためには、id, account, group の情報が必要になります。
必要な情報は、共有情報として保存するか、または各画面間で相互に受け渡しをするなどの工夫をしてください。



ページベース開発モデルとの連携

プレゼンテーションページから JSP(または Servlet) で開発されたページを呼び出すためには、通常のフォームタグ(<FORM<)やアンカータグ(<A<)を利用して、呼び出して下さい。href や action に指定するURLは、intra-mart のURL(標準では http://host:port/imart/intramart)からの相対で指定するか、または完全形式のURLで指定して下さい。
JSP(または Servlet) のプログラム内で必要になる情報は、予めURL引数として渡すように工夫するようにして下さい。

例)アプリケーションサーバのインストールディレクトリ/doc/myapp/myjsp.jsp を master というユーザID情報を伴って呼び出す場合
<FORM action="myjsp.jsp">

<INPUT type="hidden" name="account" value="master">
</FORM">

JSP(または Servlet) で開発されたページからプレゼンテーションページを呼び出す場合には、imart.http.SessionQuery(intra-mart JAVA Base API)を利用することでセッションを維持しつつ各ページが相互に連携する事ができます。



注意事項

JSP や Servlet にはセッションという概念が存在しないため、クライアントとの対話形式のページでクライアントを自動的に識別したり、またクライアント固有の情報を保持したりできません。imart.server.information.SessionCask などの intra-mart JAVA Base API を利用することによって、クライアントとのセッションを実現することができます。

JSP ソースがコンパイルされると、インストールディレクトリ/work/ に JSP ソースから作成された JAVA のソースファイルとクラスファイルが作られます。エラーが発生した場合、これらのファイルを参照してデバッグ等を行って下さい。

JSP および Servlet は、セッションという概念がありません。ページベース開発モデルのページ(PresentationPage & FunctionContainer)と連携する場合には、セッションID(FunctionContainer API Client.identifier()で取得する事が出来ます)を相互にやり取りする必要があります。

intra-mart Application Server を分散インストールして、ネットワーク型でシステム運用している場合、各サーバで動作している Java クラス同士の変数の共有はできません。また、ラウンドロビン機能を利用している場合、リクエストに対する処理サーバは一意に保証されませんので、あるリクエストを処理しているスレッドと他のリクエストを処理しているスレッドで変数の共有は保証されません。プログラム間でのデータの共有には、Information Server を利用するようにして下さい。

自作のクラスなどを利用する場合、intra-mart Application Server の実行環境に対してクラスパスを設定する必要があります。Application Server のインストールディレクトリ直下 lib/ ディレクトリ内にクラス(またはアーカイブ(jar))ファイルを保存するか、クラス(またはアーカイブ(jar))ファイルに対してクラスパスを設定して下さい。クラスパスを設定するには、intra-mart Administrator を利用するか、または Application Server を実行している環境に対して設定するようにして下さい。



戻る

Copyright(C) NTT DATA INTRAMART CO.,LTD. 2000,2001 All Rights Reserved.