第7章 WebScript言語
7.3 変数
- 【パラメタの値の指定方法】
URLの一部としてパラメタを指定する場合、HTTPの規約上、パラメタの値によってはエンコードを必要とすること があります。エンコードが必要なのは、英数字以外の文字を含む場合です。
フォーマットファイルでは、URLencode関数を使用することができます。日本語文字を含む場合には、必ず URLencode関数で、エンコードを行ってください。
例
<!SETVAR value1 'URLencode("引数1の値")'>
<A HREF="$SYSTEM::FMTR?WIT_html=eg1.html&arg1=$value1">
- 【参照方法】
“QUERY::パラメタ名”で参照することができます。
- 同名のパラメタが1つだけ存在する場合 渡された値のまま参照されます。
- 同名のパラメタが複数存在する場合
wit_fmtrコマンドの起動で、<SELECT>タグなどの複数選択可能なタグを使用した場合、wit_fmtrコマンドに
同名のパラメタが複数指定されることになります。
この場合、その変数の値は以下に示すように、リストの形で参照されます。
使用例
SolarisおよびLinuxの場合の使用例を以下に示します。Windows(R)の場合は、使用例の一部を以下のように変更してく
ださい。
・ wit_fmtr → wit_fmtr.exe HTMLファイルから起動する場合
【<A>タグを使用する場合】
<A HREF="/cgi-bin/wit_fmtr?WIT_html=sample.html"> ... </A>
【<FORM>タグを使用する場合】
<FORM ACTION="/cgi-bin/wit_fmtr" METHOD="...">
<INPUT TYPE="hidden" NAME="WIT_html" VALUE="sample.html">
:
</FORM>
フォーマットファイルから起動する場合
【<A>タグを使用する場合】
<A HREF="$SYSTEM::FMTR?WIT_html=sample.html"> ... </A>
【<FORM>タグを使用する場合】
<FORM ACTION="$SYSTEM::FMTR" METHOD="...">
<INPUT TYPE="hidden" NAME="WIT_html" VALUE="sample.html">
:
</FORM>
4.4 wit_media
説明
パラメタWIT_statementは、指定されたSQL文でデータベースの検索(バイナリデータの検索)を行ったあと、結果をパラメタ
WIT_ctypeで指定されたコンテンツタイプに従って、Webサーバに返します。結果として、ブラウザには、イメージなどの バイナリデータが表示されます。
このコマンドを使用することにより、イメージ(静止画)、音声、動画などを容易に出力することができます。
パラメタ
WIT_statement(必須指定)
- バイナリデータだけを検索するための動的SELECT文または行検索文を指定してください。行検索文について は、“6.3.1 <!DO>”を参照してください。
- 指定するSQL文の検索条件は、1つのレコードを特定できるように記述してください。複数のレコードが検出され
WIT_ctype(必須設定)
- コンテンツタイプとは、ブラウザで表示するバイナリデータの形式のことです。
- データ形式に対応した以下のキーワードを指定してください。
データ形式 キーワード
GIFイメージ image/gif
JPEGイメージ image/jpeg
au形式の音声 audio/basic
aiff形式の音声 audio/x-aiff
MPEG形式の動画 video/mpeg
XBMイメージ Solarisの場合
image/x-xbitmap
XML text/xml
- ブラウザによって表示できるバイナリデータの種類が異なります。ブラウザによって表示できるバイナリデータにつ いては、ブラウザの設定を確認してください。
WIT_onerror(省略可能)
Solaris/Linuxの場合
- フォーマットファイルのアプリケーション環境パラメタformatDirからの相対パスを指定してください。ただし、パスの 一部として「..」を指定することはできません。
formatDir = /prj/fmtr
フォーマットファイルの絶対パス:/prj/fmtr/proc/sample.html 指定方法:WIT_onerror=proc/sample.html
- パラメタWIT_statementで指定されたSQL文の実行で、データベースからエラーが通知された場合、または
WebScriptのエラーが発生した場合は、本パラメタで指定されたフォーマットファイルが処理され、結果がブラウザ に出力されます。 ただし、<IMG>タグを使用する場合は、効果がありません。
- エラー情報は、“SYSTEM::DB_ERRORCODE、SYSTEM::DB_ERRORMSG、
SYSTEM::WL_ERRORCODE”に設定されます。
Windowsの場合
- フォーマットファイルのアプリケーション環境パラメタformatDirからの相対パスを指定してください。ただし、パスの 一部として「..」を指定することはできません。
formatDir C:\prj\fmtr
フォーマットファイルの絶対パス:C:\prj\fmtr\proc\sample.html 指定方法:WIT_onerror=proc\sample.html
- パラメタWIT_statementで指定されたSQL文の実行で、データベースからエラーが通知された場合、または
WebScriptのエラーが発生した場合は、本パラメタで指定されたフォーマットファイルが処理され、結果がブラウザ
に出力されます。ただし、<IMG>タグを使用する場合は、効果がありません。
- エラー情報は、“SYSTEM::DB_ERRORCODE、SYSTEM::DB_ERRORMSG、
SYSTEM::WL_ERRORCODE”に設定されます。
使用例
【<A>タグを使用する場合】
<!SETVAR SQL 'URLencode("SELECT 会社外観 FROM STOCKS.会社表 WHERE ...")'>
<A HREF="$SYSTEM::MEDIA?WIT_statement=$SQL&WIT_ctype=image/gif&WIT_onerror=
error.html"> ... </A>
【<IMG>タグを使用する場合】
<!SETVAR SQL 'URLencode("SELECT 会社外観 FROM STOCKS.会社表 WHERE ...")'>
<IMG SRC="$SYSTEM::MEDIA?WIT_statement=$SQL&WIT_ctype=image/gif">
【<FORM>タグを使用する場合】
<!SETVAR SQL '"SELECT 会社外観 FROM STOCKS.会社表 WHERE ..."'>
<FORM ACTION="$SYSTEM::MEDIA" METHOD="...">
<INPUT TYPE="hidden" NAME="WIT_statement" VALUE="$SQL">
<INPUT TYPE="hidden" NAME="WIT_ctype" VALUE="image/gif">
<INPUT TYPE="hidden" NAME="WIT_onerror" VALUE="error.html">
:
</FORM>
4.5 wit_logout
説明
WebScriptのセションを終了するためのコマンドです。
パラメタとしてフォーマットファイルまたはURLを指定することで、適切なHTML文書を表示することができます。
パラメタ
WIT_html(省略可能)
フォーマットファイルのファイル名を、アプリケーション環境パラメタformatDirからの相対パスで指定してください。パ スの一部として「..」は指定できません。
Solaris/Linuxの場合 formatDir = /prj/fmtr
フォーマットファイルの絶対パス:/prj/fmtr/proc/sample.html 指定方法:WIT_html=proc/sample.html
Windowsの場合 formatDir C:\prj\fmtr
フォーマットファイルの絶対パス: C:\prj\fmtr\proc\sample.html 指定方法:WIT_html=proc\sample.html
指定されたフォーマットファイルの処理結果をブラウザに表示したあとに、WebScriptのセションを終了します。
WIT_urlpath(省略可能)
- URLの絶対パス部分を記述して、文書を指定してください。WebScriptのセションを終了したあとに、指定された HTML文書を表示します。
そのほかのパラメタ
- フォーマットファイルを処理する(パラメタWIT_htmlを指定、または環境パラメタlogoutFormatを指定)場合、
WIT_html以外のパラメタを指定することができます。指定したパラメタの値は、そのフォーマットファイルの中で参 照することができます。
- パラメタ名、パラメタの指定方法や参照方法は、wit_fmtrコマンドの場合と同じです。
パラメタなしの場合
- アプリケーション環境パラメタlogoutFormatが指定されている場合は、そのパラメタに指定されたフォーマットファ イルが処理されます。その結果をブラウザに表示したあとに、WebScriptのセションを終了します。
注意
WIT_htmlとWIT_urlpathの両方が指定された場合は、WIT_htmlが指定されたものとみなされます。
使用例
【<A>タグを使用する場合】
フォーマットファイルを指定:
<A HREF="$SYSTEM::LOGOUT?WIT_html=sample.html"> ...</A>
URLを指定:
<A HREF="$SYSTEM::LOGOUT?WIT_urlpath=/web/logout.html">...</A>
【<FORM>タグを使用する場合】
<FORM ACTION="$SYSTEM::LOGOUT" METHOD="...">
<INPUT TYPE="hidden" NAME="WIT_html" VALUE="sample.html">
:
</FORM>
注意
タイムアウトが発生したあとにWebScriptコマンドを実行した場合、WebScriptのセションが終了したことを示すメッセー ジが、ブラウザに表示されます。
本章では、フォーマットファイルについて説明します。
5.1 フォーマットファイル
フォーマットファイルは、WebScriptがデータベースと接続し、情報をやり取りするためのファイルです。
フォーマットファイルは、wit_fmtrなどのWebScriptコマンドによってWebScriptセションに渡されます。WebScriptセション は、受け取ったフォーマットファイルに対して、以下の処理を行い、結果をHTML文書として、Webサーバに返却します。
・ 拡張タグの処理
・ 変数の置換
フォーマットファイルは、上記の処理が行われることを除いて、HTML文書と同じです。
なお、上記の処理の行われる順序および処理の詳細は、“付録B WebScriptフォーマットファイル解釈の詳細”を参照し てください。
5.2 拡張タグ
フォーマットファイル中では、一般のHTMLで定義されているタグのほかに、WebScriptが独自に定義しているタグを使用 することができます。拡張タグには、以下の5種類があります。
・ フォーマットファイルの実行を制御するタグ
・ データベースにアクセスするタグ
・ 表示を行うタグ
・ 変数を制御するタグ
・ そのほかのタグ
【例】
以下に示すタグは、指定されたSQL文を実行して、結果を変数rsltに代入しています。
<!DO "SELECT NAME FROM SCM.TBL1 WHERE AGE < 40" RESULT=rslt>
WebScript拡張タグの表記
WebScript拡張タグは、先頭の文字が「!」になっているため、一般のHTMLタグと容易に区別することができます。拡張タ グの詳細は、“第6章 WebScript拡張タグ”を参照してください。
WebScript拡張タグのパラメタ
WebScript拡張タグのパラメタには、通常のHTMLタグと同様に通常の文字列を記述することができます。WebScript拡張 タグのパラメタの多くは、WebScript言語で定義されている表現も、記述することができます。WebScript言語の詳細 は、“第7章 WebScript言語”を参照してください。
WebScript拡張タグのパラメタに、単なる文字列を記述する場合は、パラメタを二重引用符(")で囲んでください。WebScript 言語の表現を記述する場合は、パラメタを引用符(')で囲んでください。パラメタ中の文字が、英数字だけからなる場合 は、引用符は省略することができます。
【例】
以下の表現は、変数strの長さに関する比較の結果を判定しています。
<!IF 'length(str) > 10'> 長すぎます <!/IF>