WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:JavaScriptについて

0:[投稿] みほ [2002/12/05 17:11 ][環境:WIN+IE JSP]

こんにちは。私はJavaScriptを習い始めたばかりの初心者ですが
JavaScriptというのは、WEBサーバ上でも実行できるのでしょうか?


1:[回答] やじうま1号 [2002/12/05 17:16 ]

できないでしょう。
基本的にはブラウザー上で実行するものです。

ウェブサーバー上で実行するのは
CGIやサーバーサイドスクリプトなどです。


2:[回答] ふじ [URL] [2002/12/05 17:29 ]

サーバーサイド JavaScript というものもあります。
が、あんまりメジャーではないですね。
http://www.google.co.jp/search?q=%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%B5%E3%82%A4%E3%83%89+JavaScript&ie=UTF-8&oe=UTF-8&hl=ja&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=

単に「JavaScript」と言った場合は、クライアントで動作するものを指している
と思って間違いないと思います。


3:[回答] yuu [URL] [2002/12/05 18:42 ]

>サーバーサイド JavaScript というものもあります。

言語としては同じなのですが。
どこで動いているかの違いだけで。


4:[質問] みほ [2002/12/09 13:29 ]

JavaScriptのような画面制御をサーバーサイドで行う場合、どのサーバーサイドスクリプトを使うのが良いでしょうか?


5:[回答] andi [2002/12/09 15:01 ]

「JavaScriptのような画面制御」って何ですか?


6:[回答] みほ [2002/12/09 15:17 ]

例えば、ブラウザのテキストエリアでマウスが右クリックされた時のイベント処理のことです。


7:[回答] gun [2002/12/09 16:41 ]

イベント処理は、
ページが読み込まれた後の動作ということになりますので、
1.JAVAスクリプト
2.VBスクリプト(IE専用)
のどちらかで行います。

ですから、サーバサイドスクリプトを絡ませるには、
"JAVAスクリプトなどを文字列としてHTML文書に含めて出力する"
という方法で間接的に行うことになります。


8:[質問] みほ [2002/12/09 17:02 ]

こんにちは。gunさんアドバイスありがとうございます。
"JAVAスクリプトなどを文字列としてHTML文書に含めて出力する" とはどういう意味ですか?わたしは初心者ですのでもう少し具体的に教えて頂けないでしょうか?


9:[回答] gun [2002/12/09 17:38 ]

サーバサイドで動作させるスクリプトには
1.CGI
2.PHP
3.ASP
等々
色々あるわけですが、
いづれもブラウザからのリクエストを受けて、サーバサイドで処理
をした結果をHTML文などでレスポンスするという動作になります。

サーバサイドで処理をするということは、
毎回サーバ上のデータの状況などに応じて編集したJAVAスクリプトを
含めたHTML文をレスポンスすることも可能になります。

例えば、
プルダウンメニューを表示させるJAVAスクリプトがあったとして、
1.Aさんのプルダウンメニューには "実行" を表示させる
2.Bさんのプルダウンメニューには "実行" を表示させない
という編集をJAVAスクリプトに対して行ってから、
HTML文書に含めて出力する。
ということが可能です。

この説明で通じるか自信がありませんので、
google等の検索サイトにて、
"CGI 入門"
の2つをキーワードにして、良さそうなサイトを探してみてください。


10:[回答] ... [2002/12/09 22:08 ]

>1.CGI
>2.PHP
>3.ASP

CGI と ASP はインターフェースであって、スクリプトではありませんが。


11:[回答] みほ [2002/12/10 09:56 ]

gunさん詳しいご説明ありがとうございます。
教えてもらったことを参考にして考えてみようと思います。


12:[質問] みほ [2002/12/10 10:20 ]

素朴な疑問ですが、JSPでJAVAスクリプトは使えないのでしょうか?
どなたか教えてください。


13:[回答] Yachimata [MAIL] [2002/12/10 10:35 ]

JSP はJavaアプリケーションが動いた結果の値を与えられて起動し、その結果をHTML形式で出力して、ブラウザに表示されるもののようです。

先述のように、JavaScriptはそののち、ローカルで動作するものですので『JSPでJAVAスクリプト』というのは微妙にずれているような気がします。
『HTMLでJAVAスクリプト』と、言うのと同じだと思うのですが如何でしょうか。


14:[質問] みほ [2002/12/10 10:59 ]

確かにYachimataさんが言うように『HTMLでJAVAスクリプト』を使うということは理解できました。
それでは、ローカルのブラウザ上でJAVAスクリプトでできることをサーバー側でやろうとした場合はどうしたらよいでしょうか?


15:[回答] ... [2002/12/10 11:14 ]

>ローカルのブラウザ上でJAVAスクリプトでできることをサーバー側でやろうとした場合

何をしたいのですか?
>>4 とか >>6 とかで述べられているようなことは、クライアントサイドのスクリプトなどによって行われます。>>4 とか >>6 とかのことをサーバサイドで行った場合、サーバマシンで起動しているブラウザの画面制御が行われたりする可能性はありますが、たとえそうだとしても、それはサーバマシン上でクライアントサイドスクリプトが動いているというだけです。


16:[回答] ,,, [2002/12/10 11:26 ]

みほさんが、認識している「サーバー側」をおしえてください。


17:[回答] みほ [2002/12/10 13:23 ]

ここでサーバー側とは、ブラウザから入力したデータを処理する領域と考えています。
ブラウザから入力したデータはWebサーバー上のJspで処理され、処理結果をHTMLで出力しています。
JspのなかにJavaScriptを組み込んでもJavaScriptでセットした変数はJspから参照できないので困っています。
全ての処理をWebサーバー側でやろうとしているからむりがあるのでしょうか。
何か良い案がありましたら教えて下さい。


18:[回答] Yachimata [MAIL] [2002/12/10 13:55 ]

私の中では『JavaScript』と『JSP』が同時に動くことはない、と認識しているのですが、もしかしてお互いのメソッドを呼び合う事が可能なのでしょうか?でしたら私の勉強不足です。

JSP → HTML → JavaScript

というように、完全に切り離されていると思っていたので、
みほさんがJavaScriptで実現しているロジックをJSPにJavaコードで組み込むしかないかなと思っていました。

HTMLから擬似的にJavaを呼ぶ為にJSPを用いる方法なら想像付くのですが…


19:[回答] みほ [2002/12/10 14:56 ]

Yachimataが言うようにJavaScriptとJSPが同時に動くことはないですし、お互いのメソッドを呼び合う事はできないと思います。
確かにJSP→HTML→JavaScriptというように、完全に切り離して考えたほうがよさそうなので、JspのなかにJavaScriptを組み込むのではなく、HTMLのなかにJavaScriptを組み込んで処理をしようと思います。

>JavaScriptで実現しているロジックをJSPにJavaコードで組み込むしかないかなと思っていました。

ブラウザのテキストエリアでマウスが右クリックされた時のイベント処理をJavaScriptで実現していますが、このようなことをJavaコードで書くことはできるのでしょうか?

>HTMLから擬似的にJavaを呼ぶ為にJSPを用いる方法なら想像付くのですが…

具体的にどういう意味ですか?


20:[回答] Yachimata [2002/12/10 16:30 ]

具体的に言いますと・・・・

HTMLにformを二つ置きます。
一つが普通に画面に表示するオブジェクトが配置されるform。
そして、もう一つダミーで非表示のformを設けます。

そのダミーのformにhiddenで項目を配置しておいて、右クリックイベントで動作したJavaScriptなどで準備が整ったらそのダミーのformに配置して置いた隠し項目にScriptの結果の値をセットし、更にそのformのtargetを処理を記述したJSPにします。
そして、そのダミーのformをsubmitしてやれば、そのJSPに配置したメソッドが起動しますよね。
そこで、getParamerter などでsubmitした値をrequestオブジェクトから引っ張ってやればJavaScriptからJavaに値を引き渡す事になると思います。

JSP内のJavaメソッドでそれらの値を用いて処理を行った結果を見て、ダミーじゃないformに干渉するようなスクリプトを出力します。
そのfunctionを呼ぶような命令文も出力します。

これで、JavaScript → Java(JSP) → JavaScript が実現出来ます。
画面も切り替わりません。


少し前に会社の先輩から聞いた方法です。
ちょっと煩雑ですが、みほさんの求めるものに応用出来ればよいのですが。


21:[回答] Yachimata [2002/12/10 16:40 ]

ちょっと間違いてました、ごめんなさい。

target は、通常のformのを、ダミーのformにする、が正解です。
ダミーのformに隠し項目を設ける必要もありませんね。


22:[回答] みほ [2002/12/10 16:50 ]

具体的に教えてもらいましてありがとうございました。
わたしのような初心者には、理解するのが難しい内容でした。
簡単なサンプルコードがありましたら紹介していただけないでしょうか。


23:[回答] ひじ [2002/12/11 00:53 ]

まず、 HTTP の仕組みを根本的に理解していないと思われます。理解していないまま議論しても不毛なので、 HTTP の仕組みを解説します。

HTTP はとても単純です。
UserAgent(以下UAと略す) は、サーバに「これこれの場所にある何か」を要求します。
すると、サーバは UA が提示した場所にある文書を UA に返します。それだけです。たったそれだけのことしかできません。

UA が提示した場所に、HTML文書がおいてある場合は、HTML文書をそのまま返すでしょう。CGIとか、JSPだったりすれば、処理を行った結果をUAに返します。

UA は、サーバから結果を受け取ったあと、サーバとの接続を切断します。
Webブラウザの場合は、ここで HTML や JavaScript などを解釈して、
ユーザが理解しやすいように整形して表示します。

以上がHTTPについての説明です。

ここまでで述べたように、 HTTP サーバは単に UA に要求された場所にあるものを送るということしかできません。サーバ側でできることは、せいぜい JavaScript を含んだ HTML を生成して UA に送って、あとは UA 任せにするしかありません。

UA がサーバに何かを送ることができる唯一のチャンスは、サーバに「何か」の取得要求を行うときです。具体的には、アンカーなどからリンクを参照したり、formのsubmitを行ったときの2つです。

さて、「ブラウザのテキストエリアで右クリック」という行動は、UAに対して行う行動であり、まず初めにUAが理解しなければ、サーバに伝わることはありません。したがって、UAが理解できるJavaScriptを使ってこの行動を捕らえます。
JavaScriptの変数は、input要素の隠しフィールドに入れておいて、
formのsubmitを使って、サーバに送ります。
このときにJSPで送られた変数を取得すれば良いでしょう。


24:[回答] みほ [2002/12/11 08:53 ]

ひじさん、HTTP の仕組みについて詳しく教えてくれてありがとうございました。
教えてもらいました事をふまえて、もう一度じっくり考えてみようと思います。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World