ドキュメント 4. ページの作成![]() |
![]() ![]() |
このセクションには,ユーザがページを作成するときに役立つ項目をまとめてあります.各項目についてはこのユーザガイドの後半でより詳しく説明してあります.ここでは重要な項目をまとめ,簡単な説明を加えました.これらの項目の要点を押さえることで,サイトの開発がよりスムーズになるでしょう.
webMathematica で作業をする際に理解しておかなければならない変数が2つあります.それは入力変数とページ変数です.
入力変数は,例えばHTMLフォームの入力フィールドから,HTTPのリクエストに付いてきます.入力変数には「$$」という接頭辞が付いているため,Mathematica のコードの中で識別できます.以下の例題ではsetting変数が入力フィールドで設定されます.これはMathematica のコードでは$$settingになります.
<input type="text" name="setting" />
<msp:evaluate>
If[ MSPValueQ[ $$setting],
....
]
</msp:evaluate>
入力変数はユーザのサーバへの潜在的なセキュリティの危険を含んでいるので,Mathematica の入力に変換する際は常に特別の関数のMSPBlockとMSPToExpressionを使ってください.特に,ToExpressionは入力変数には絶対に使わないでください.次はMSPBlockの使用例です.
<input type="text" name="fun" />
<msp:evaluate>
MSPBlock[ {$$fun},
Integrate[ $$fun, x]
]
</msp:evaluate>
ページ変数は中間の値を保存するMathematica の変数です.この変数はページ終了と同時にクリアされるのでページ変数と呼ばれます.以下の例題ではページ変数のtmpが,テキスト入力フィールド(これは$$exprという入力変数に保存されています)に入力した式を保存するのに使われています.安全な関数のMSPToExpressionを使って入力をMathematica の式に変換します.
<input type="text" name="expr" />
<msp:evaluate>
tmp = Null;
tmp = MSPToExpression[ $$expr] ;
</msp:evaluate>
<p>
<msp:evaluate>
If[ tmp =!= Null,
....
]
</msp:evaluate>
</p>
ご自分の変数をページの終了後も保存したい場合は,これをセッション変数にするとよいでしょう.セッション変数および変数全般に関する詳細は「より高度なトピック」の「変数」に詳しく説明してあります.
webMathematica の目的はMathematica をWeb上の計算に使うことです.そのため,WebページにMathematica のコードを置くことが重要になります.これは<msp:evaluate>タグを使って次のようにします.
<msp:evaluate
Integrate[ 1/(1-x^3), x]
</msp:evaluate>
Mathematica のコードはMathematica の標準的な方法で評価を行い,計算結果がWebのページに表示されます.MSPFormatを使って結果のフォーマットを変更することもできます.Mathematica におけるフォーマットについては「より高度なトピック」の「評価のフォーマット」でより詳しく説明してあります.次はMSPFormatの例です.積分がTraditionalFormにフォーマットされ,結果がGIF画像で表示されます.
<msp:evaluate
MSPFormat[ Integrate[ 1/(1-x^3), x], TraditionalForm]
</msp:evaluate>
結果をWebで表示したくない場合は,セミコロン(;)を使って隠すことができます.次の例では変数xに割当てが行われていますが,出力は表示されません.
<msp:evaluate
x = 109;
</msp:evaluate>
webMathematica のページでコードを使う上での最後のヒントは,複数の計算を1つの<msp:evaluate>タグ内でセミコロン(;)を使って区切る方法です.以下をご覧ください.
<msp:evaluate
x = 109;
y = 44.5;
{x+y}
</msp:evaluate>
webMathematica のページでのコードの使い方については,「付録」の「MSP Taglibのリファレンス」で詳しく説明してあります.ここにはwebMathematica のタグについての詳しい説明があります.
![]() ![]() |