i ntra-mart The Power for Enterprise Web Solution
JavaServerPages(Servlet)について

前提

ブラウザから intra-mart に対して Web アクセスするためには、Schedule Service 以外のすべてのサービス および intra-mart Web-Server Connector(StandAlone 型の場合は必要ありません) をインストールして正しく動作していることが必要になります。



intra-martの初期起動

Application Runtime の初期起動時には、ページベース開発モデルのプログラムが 実行されます。
詳しくは、ページベース開発モデルのFunction Containerについてを参照して 下さい。

(ページベース開発モデルと連携する必要がない場合には、特に設定や作業はいりません。)



JSP(Servlet)により生成されるWeb ページ

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

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

Servlet は、URLとの関連付けを [install_directory]/conf/imart.xml で定義することで実行する事ができます(実行前に、クラスファイルを実行可能なディレクトリに保存してください)。

ブラウザから直接リンクをする場合は、該当のファイルを 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引数として渡されます。


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

プレゼンテーションページから 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) で開発されたページからプレゼンテーションページを呼び出す場合には、jp.co.intra_mart.foundation.http.SessionQueryを利用することでセッションを維持しつつ各ページが相互に連携する事ができます。



注意事項

JSP や Servlet にてユーザセッションの必要なアプリケーションを作成する場合は、Servlet エンジンの持つ HTTP セッションを利用して作成します。これにより、ページベース開発モデルの画面やアクセスセキュリティ機能とセッション連携したアプリケーションを作成することが出来ます。

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

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

自作のクラスなどを利用する場合、Application Runtime の実行環境に対してクラスパスを設定する必要があります。クラスパスを設定するには、intra-mart Administrator を利用するか、または Application Runtime を実行している環境に対して設定するようにして下さい。




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