Mathematica 9 is now available
8.1 MSPスクリプトのJSPへの変換

ドキュメント8. 以前の webMathematica 技術

 

8.1 MSPスクリプトのJSPへの変換

このセクションではMSPスクリプトとMSP Taglibを使っているJSPの変換について説明します.MSPで使えるMathematica のコマンドのほとんどがJSPでも使えます.ですから,MSPをJSPに変換することは可能です.JSPで使うことのできないMathematica のコマンドはMSPIncludeだけです.この機能を使わなければならないのなら,代りにjsp:includeを使うようにしなければなりません.しかし,JSPのメカニズムはMSPのそれよりもはるかに豊かなので,JSPの中にはMSPに変換するのが困難なものもあります.

8.1.1 MSPのJSPへの変換

これは例題Plot.mspを使って説明します.このテキストは以下をご覧ください.

<html>
<head>
<title>Plot</title>
</head>
<body>
<h1>Plot</h1>
<form action="Plot" method="post">
Enter a function:
<input type="text" name="fun" size="24"
value="<%Mathlet MSPValue[ $$fun, "Sin[x]^2"] %>">
Enter a number:
<input type="text" name="x1" size="24"
value="<%Mathlet MSPValue[ $$x1, "10"] %>">
<br/>
<%Mathlet
MSPBlock[{$$fun, $$x1},
MSPShow[Plot[$$fun, {x, 0, $$x1}]]] %>
<hr/>
<input type="submit" name="btnSubmit" value="Evaluate">
</form>
</body>
</html>

これに対応するJSPのPlot.jspは次の通りです.

<%@ page language="java" %>
<%@ taglib uri="/webMathematica-taglib" prefix="msp" %>

<html>
<head>
<title>Plot</title>
</head>
<body bgcolor="#ffffff" >

<form action="Plot.jsp" method="post">

<msp:allocateKernel>
Enter a function:
<input type="text" name="fun" size="24" value =
   "<msp:evaluate>MSPValue[ $$fun, "Sin[x]^2"]</msp:evaluate>"
/>
Enter a number:
<input type="text" name="x1" size="24" value =
   "<msp:evaluate>MSPValue[ $$x1, "10"]</msp:evaluate>"
/>
<br>
<msp:evaluate>
   MSPBlock[ {$$fun, $$x1},
      MSPShow[ Plot[$$fun, {x, 0, $$x1}]]]
</msp:evaluate>
<hr>
</msp:allocateKernel>

<input type="submit" name="btnSubmit" value="Evaluate">

</form>
</body>
</html>

違いは極めて明らかです.以下にまとめます.

スクリプトがJSPとなるように名前を変える.

スクリプトは(WEB-INFディレクトリの中ではなく)webMathematica Webアプリケーションに置かなければならない.

スクリプトの冒頭に次の行を加えなければならない.

<%@ page language="java" %>
<%@ taglib uri="/webMathematica-taglib" prefix="msp" %>

評価はすべて<allocateKernel>でラップしなければならない

<%Mathlet expr %><msp:evaluate>expr</msp:evaluate>で置き換えなければならない.

MSPIncludeの代りにjsp:includeを使うようにする以外に,Mathematica の計算を変更する必要はない.

Mathematica のパッケージがMSPDirectoryの内部からロードされている場合は,これをWEB-INF/Applicationsにあるディレクトリに置くようにしなければならない.

8.1.2 JSPのMSPへの変換

前のセクションのステップを逆方向に進むと,MSP Taglibを使っているJSPをMSPに戻すことができます.これは,上記以外のJSPの機能が使われておらず,使われているMSP Taglibのタグがmsp:allocateKernelmsp:evaluateだけの場合に限られます.



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information