Documentation3. 基本的な例題

 

変数の取得:GetBasic.jsp

前述のようにwebMathematica をインストールするとhttp://localhost:8080/webMathematica/Examples/GetBasic.jspでこのJSPに接続することができます(ご自分のサーバに接続するURLはこれとは多少異なる場合もあります).

この例題ではJSPで計算された値をMathematica に渡します.Mathematica はこの値を使って計算します.このページのソースはwebMathematica/Examples/GetBasic.jspにあります.その一部分は以下のようになっています.

<msp:allocateKernel>

<msp:evaluate>
   num = Random[Integer, {1, 10}];
   list = Table[ Random[], {num}] ;
   sum = Apply[ Plus, list]/num;
</msp:evaluate>

<msp:get name="dArray" type="double[]" value="list" />
<msp:get name="dValue" type="Double" value="sum" />

<p>
The average is <%= dValue %>.
</p>

<table border>
<% for ( int i = 0; i < dArray.length; i++) { %>
<tr><td><%= dArray[i] %></td></tr>
<% } %>
</table>

</msp:allocateKernel>

この例ではMathematica が乱数のリストを生成し,その平均値を計算します.JSPはmsp:getタグを使ってこれらの値を得ます.このタグはname属性,type属性それにvalue属性を持っています.name属性はJavaの変数名を制御します.type属性はJavaで使われるタイプを制御します.value属性は評価しなければならないMathematica の式を渡します.Object,String,配列のような参照タイプのみがmsp:getタグで渡されます.これに加え,Javaで与えられるタイプはMathematica が送ったタイプと互換性がなければなりません.さもなければ例外が投げられます.Mathematica からの伝達規則は通常のJ/Link タイプの変換が適用されますが,適用されなければオブジェクトはJ/Link が提供する一般的なMathematica 式を表すcom.wolfram.jlink.Exprタイプのオブジェクトに変換されます.

この例題にはJavaとMathematica の両方のプログラミングが必要です.これはwebMathematica を既存のJSPフレームワークに統合することがいかに簡単かを示しています.