Documentation 3. 基本的な例題![]() |
![]() ![]() |
前述のようにwebMathematica をインストールするとhttp://localhost:8080/webMathematica/Examples/Content.jspでこのJSPに接続することができます(ご自分のサーバに接続するURLはこれとは多少異なる場合もあります).
今まで見てきた例では,どれもHTMLがブラウザに返されていましたが,いろいろなフォーマットを使った一般的な内容をWebで扱うこともできます.MSPはMSPReturnを使って任意の内容を返すことができます.次はいろいろなフォーマットがどのように返されるかの例です.ソースはwebMathematica/Examples/Content.jspとwebMathematica/WEB-INF/Applications/ExampleUtilities/Content.mにあります.
次はこのソースです.
<%@ page language="java" %>
<%@ taglib uri="/webMathematica-taglib" prefix="msp" %>
<html>
<head>
<title>Live 3D Plotting</title>
</head>
<body text="#171717" bgcolor = "#ffffff">
<html>
<head>
<title>General Content</title>
</head>
<body bgcolor="#ffffff">
<h1>General Content</h1>
<form action="Content.jsp" method="post">
This example takes a format type and converts a notebook into
this format type. It returns the converted notebook. </p>
<msp:allocateKernel>
<msp:evaluate>
If[ MSPValueQ[ $$button],
Get[ "ExampleUtilities`Content`"];
MSPReturn @@ GeneralContent[ $$button]]
</msp:evaluate>
</msp:allocateKernel>
<p>
Please select a format:
</p>
<input type="submit" name="button" value="Notebook">
<input type="submit" name="button" value="PostScript">
<input type="submit" name="button" value="GIF">
</form>
</body>
</html>
これがMathematica のソースです.
MakeNotebook[] :=
Developer`UseFrontEnd[
Module[ {nb, nbobj},
nb = NotebookCreate[] ;
NotebookWrite[ nb, Cell[ "A Dynamically Created Notebook", "Title"]] ;
NotebookWrite[ nb,
Cell[ "Converted to " <> $$button, "Subtitle"]] ;
NotebookWrite[ nb, Cell[ "The date is " <> ToString[ Date[]], "Text"]] ;
nbobj = NotebookGet[ nb] ;
NotebookClose[ nb] ;
nbobj]]
GeneralContent[ fmt_] :=
Module[ {nbobj},
nbobj = MakeNotebook[] ;
Developer`UseFrontEnd[
Switch[
fmt,
"Notebook",
{ToString[ nbobj, InputForm],
"application/mathematica"},
"PostScript",
{DisplayString[ nbobj, "EPS"],
"application/eps"},
"GIF",
{DisplayString[ nbobj, "GIF"],
"image/gif"},
_, "Unknown format"]
]]
この例では1つの評価が変数$$buttonをテストします.この変数がformのボタンの1つを起動することで値を持つと,それは返すフォーマットタイプを指定するのに使われ,関数GeneralContentに渡されます.この関数のMathematica のコードは,変数が設定されるとロードされるようになっている別のパッケージにあります.GeneralContentは単純なノートブックを生成する関数MakeNotebookを呼び出します.MakeNotebookはMathematica Notebook APIと関数Developer`UseFrontEndを使ってノートブックを生成します.実際にはもっと面白いノートブックが生成されるでしょう.MSPReturnはノートブックの表現形をコンテントタイプと共にサーバに返します.これがブラウザに返されます.ブラウザが適切に設定されていれば,必要なヘルパーアプリケーションが配置されます.
より高度な例では,動的に生成されたノートブックがクライアントからのリクエストと共に送られた情報を使います.
特別な内容を返したい,またファイル名をその内容と一緒に使いたいという場合は, MSPReturnの引数が3つあるタイプを使うとよいでしょう.これについては「MSP関数のリファレンス」セクションをご覧ください.
MSPPageOptionsを使うと,これとは別の方法でMSPスクリプトから返される内容を設定することができます.この方法については後で詳しく説明します.
![]() ![]() |