Mathematica 9 is now available
3.3 MSP関数:Expand.jsp

ドキュメント3. 基本的な例題

 

3.3 MSP関数:Expand.jsp

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

submitボタンを押すと,多項式がベキ乗され,展開されます.そして,結果が書かれたHTMLページが返されます.このページのソースはwebMathematica/Examples/Expand.jspにあります.以下はformタグを示した部分です.

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

<html>
<head>
<title>Expanding Polynomials</title>
</head>
<body>
<h1>Expanding Polynomials</h1>
<form action="Expand.jsp" method="post">
Enter a polynomial (e.g. x+y):
<input type="text" name="expr" size="10">
Enter a positive integer (e.g. 4):
<input type="text" name="num" size="3">
<br>
<msp:allocateKernel>
<msp:evaluate>
   MSPBlock[{$$expr, $$num},
      Expand[$$expr^$$num]]      入力変数で計算を確保する
</msp:evaluate>
</msp:allocateKernel>
<input type="submit" name="submitButton" value="Evaluate">
</form>
</body>
</html>

これにも前の例で説明したforminputのタグが付いています.また,msp:evaluateタグはMSP関数のMSPBlockを参照しています.

formが送られるとサーバはMathematica カーネルに接続します.セッションでは2つのシンボル$$expr$$numが2つのinput要素からのテキストに割り当てられます.テキストがなければシンボルは定義されません.

次にMathematicamsp:evaluateタグの内容を評価します.MSPBlockコマンドはプログラミングコンストラクトで,ここでは$$expr$$numの2つの入力変数を検査します.もしどちらかに値がなければMSPBlockはヌル文字列を返します.ですから,はじめてこのページにアクセスしたときには結果が見えないのです.次にMathematica が両変数の値を解釈します.成功すると解釈の結果が第2引数あるいはMSPBlockのボディに代入されます.この例では$$exprの値がすべて$$exprの値を解析したもので置き換えられています.$$numも同様に処理されます.次に,その結果が評価され,フォーマットされてHTMLページに置かれます.そしてそのHTMLページがクライアントに返されるのです.

Mathematica による変数の解釈がうまくいかない場合が2つ考えられます.ひとつは入力がf[}のようにMathematica の有効な入力ではない場合,もうひとつはReadList["/etc/passwd"]のように危険な入力である場合です.どちらの場合も入力は拒否され,エラーメッセージが出されます.これは,システムのセキュリティ機能を示しています.これについては「セキュリティ」のセクションで説明します.変数の使い方については「より高度なトピック」の「変数」で詳しく説明します.

msp:evaluateタグの結果のフォーマットについては「より高度なトピック」の「評価のフォーマット」で詳しく説明します.



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT. CURRENT WEBMATHEMATICA DOCUMENTATION IS NOW AVAILABLE.