プログラミング
逆引き
クライアントとの通信
VisMでの通信
Factoryでの通信
WebServiceでの通信
CSP (Cache' Server Pages)
Cache'SQL
設定・性能
|
【広告】
|
%Requestオブジェクトの使い方
Makin' CSP Page.
WEBアプリケーションを開発する上で必要になる、ブラウザから送信されるデータの受け取り処理を行うのが%requestオブジェクトです。
次のような2つのページがあるとします。
aaa.csp | | bbb.csp
|
<HTML>
<BODY>
<FORM METHOD=POST ACTION="bbb.csp">
<INPUT TYPE=TEXT NAME=VAL>
<INPUT TYPE=SUBMIT VALUE="送信">
</FORM>
</BODY>
</HTML>
|
|
<HTML>
<BODY>
あなたの入力した値は
#(%request.Data("VAL",1))#
です
</BODY>
</HTML>
あなたの入力した値は あなたの入力した値は
|
aaa.csp で入力した値が、bbb.csp で表示されます。
このように、あるページで入力したデータを別のページに渡すことが、Webページでは良く行われます。
このような情報を受け取るとき、CSPでは次の構文を利用します。
%request.Data("パラメータ名",個数)
この文でパラメータとして渡された値を取得しています。
個数、というのは同じパラメータ名の値が複数渡されたときに、どのデータを取得するかを指定するものです。
aaa.csp | | bbb.csp
|
<HTML>
<BODY>
<FORM METHOD=POST ACTION="bbb.csp">
<INPUT TYPE=TEXT NAME=VAL>
<INPUT TYPE=TEXT NAME=VAL>
<INPUT TYPE=SUBMIT VALUE="送信">
</FORM>
</BODY>
</HTML>
|
|
<HTML>
<BODY>
#(%request.Data("VAL",1))# #(%request.Data("VAL",2))#
</BODY>
</HTML>
|
このように、1つめと2つめの値がそれぞれ取得できます。
複数のパラメータが取得可能というのが上の例ですが、いったいいくつそのパラメータに値があるのかを取得するのが、
%request.Count("パラメータ名")
です。
次の例では、<csp:loop>を使って複数のパラメータを表示しています。
aaa.csp | | bbb.csp
|
<HTML>
<BODY>
<FORM METHOD=POST ACTION="bbb.csp">
<INPUT TYPE=TEXT NAME=VAL>
<INPUT TYPE=TEXT NAME=VAL>
<INPUT TYPE=TEXT NAME=VAL>
<INPUT TYPE=SUBMIT VALUE="送信">
</FORM>
</BODY>
</HTML>
|
|
<HTML>
<BODY>
<csp:loop counter=i from=1 step=1 to=#(%request.Count("VAL"))#> #(%request.Data("VAL",i))# </csp:loop>
</BODY>
</HTML>
|
ここまでの例では、<FORM>を利用したデータ渡しでしたが、%RequestではURLに含まれるデータも同様に処理できます。 URLにデータを含めるには、対象ページアドレスの後に
? (クエスチョンマーク)を置き、続けて
変数名=値
の形式で記述します。複数の値を渡す場合は、&
()で区切ります。
aaa.csp | | bbb.csp
|
<HTML>
<BODY>
<A HREF="bbb.csp?VAL=123&mode=C">
ここをクリックしてください
</A>
</BODY>
</HTML>
|
|
<HTML>
<BODY>
#(%request.Data("VAL",1))# <br> #(%request.Data("mode",1))#
</BODY>
</HTML>
|
この時aaa.cspのリンクをクリックしてbbb.cspを開くと、123とCが表示されます。
そのほかにも
%request.Get("パラメータ名","デフォルト値",個数) |
データを取得します。%request.Dataと$Get()を組み合わせたような感じです。データ取得にはこっちを使ったほうがいいかも |
%request.GetCgienv("パラメータ名","デフォルト値") |
CGI環境変数を取得します。パラメーターには、HTTP_ACCEPT
, HTTP_ACCEPT_ENCODING , HTTP_ACCEPT_LANGUAGE , HTTP_CONNECTION , HTTP_HOST
, HTTP_REFERER , REMOTE_ADDR , REMOTE_HOST , SERVER_NAME , SERVER_PORT , SERVER_PROTOCOL
, SERVER_SOFTWARE などが来ます。詳細はこちらを参照してください。 |
|
|
等があります。
|
|