英語学習用のホームページを作ろうと思うのですが、その際すこしページに工夫をつけたいと思います。そこでCGIを使いたいと思うのですが。JAVAでCGIを作る事は出来るのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (4件)

一般的に、


CGIとはサーバ側でプログラムが動いて何らかの処理をし、
その結果をブラウザに表示してあげる仕組みを言います。
使われるプログラミング言語にはPerlやJAVA,PHP,ASPが良く使われます。
(ASPはプログラム言語ではないですね。環境というかなんと言うか。。)

JAVAでも可能ですよ。もっともサーバが対応していないと無理ですが。。
CGIが可能っていう所は大半がPerlだと思います。

JAVAとJavaScriptを同じ物と混同している素人さんが多いですが、全く別物です。
    • good
    • 0

基本的にJavaとCGIは別物と考えた方がいいですよ。


下に記載されていますが、JavaScriptの方がCGIと関連があるので簡単に説明します。

CGI:入力されたデータの応答や処理の流れをCGIプログラムを”サーバーマシン上”で動かしておくんです。
JavaScript:いろいろなこと(参考書を参考にしてください)をサーバーマシン上ではなく、”クライアントマシンのブラウザ上”で動作するのでテストするだけなら自分のパソコンさえあればOKです。
ただ、上記の2つは+HTMLです。HTML上に記載するものです。

それとは全く別のものがJavaです。Javaは”オブジェクト指向のプログラム言語”です。これは、C言語やコボルなどの関連です。それと開発ツール(フリーもある)も必要です。
まとめると初心者はCGI+HTML、中級者はJavaScript+HTML、上級者はJavaです。
(ちょっといいかげんすぎますが・・・)
    • good
    • 0

JAVAでCGIを作ると書いてありますが、


どういうことか分からないので
JAVAとCGIについて説明します。

CGIというのは、掲示板、アンケートなどを作る
プログラムです。これはそのプログラムを
プロバイダから借りなければならないので
契約しているプロバイダによっては
使えないこともあります。

そんなときに役に立つのがJAVAです。
これを使うと、CGIプログラムを使わなくても
掲示板を作ることができます。

CGIをもし、掲示板と勘違いしているとしたら、
結論から言うと作ることができます。
ただし、JAVAとJAVAスプリクト
というものがあるのでそれにも注意して下さい。
    • good
    • 0

JAVAもCGIもプログラム言語だと思うのですが、


JAVAでCGIを作るとはどういう意味なのでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QCGIで表示されるページ(hoge.cgi)に

CGIで表示されるページ(hoge.cgi)に
<meta http-equiv="Refresh" content="5;URL=www.abc.com">
とメタタグを記述し、5秒後に指定URL(abc.com)に飛ぶようにしているのですが、
この方法ですとジャンプ先(abc.com)ではリンク元(hoge.cgi)が特定できません。
ジャンプ先でリンク元URLを特定できるようにしたいのですが、何か方法はありませんでしょうか?

Aベストアンサー

 refreshの場合は、それを受け取ったブラウザは、HTTP要求ヘッダ内にrefererを含めません。含んではならない。refererは能動的に参照するという意味があるからですね。したがってサーバーの環境変数HTTP_REFERERには値が入ってこない。
 したがって他の手段を用いる必要があります。良く使われる方法は
・Cookie 
 いわゆるtracking Cookieですが、この場合セキュリティソフトで消される場合がある。
・Web ビーコン
 ジャンプ先のサーバーで画像を出力させる。セキュリティを高レベルにしていると、表示しているページのドメインと異なる場所の画像は読み込まない場合もある。
 手法については
   下記の様に、単一の画像ファイル「a.jpg」を呼び出して、 - CGI - 教えて!goo
    ( http://oshiete.goo.ne.jp/qa/5901567.html )
・PATH_INFOやQUERY_STRINGSなどに含めて、refere先のサーバーで処理する。

 私は、この3つを併用しています。最後の方法については、
・DirectoryIndexで、index.cgiを表示させるようにするか、index.htmlをCGIとして動作させる、あるいはindex.phpを使い、
 <meta http-equiv="Refresh" content="5;URL=www.abc.com/hoge.com/">
 <meta http-equiv="Refresh" content="5;URL=www.abc.com?hoge.com">
のようにする。

 処理後直ちにページを閉じた場合なども含めて確実に補足するには、3つを併用するとよい。

 refreshの場合は、それを受け取ったブラウザは、HTTP要求ヘッダ内にrefererを含めません。含んではならない。refererは能動的に参照するという意味があるからですね。したがってサーバーの環境変数HTTP_REFERERには値が入ってこない。
 したがって他の手段を用いる必要があります。良く使われる方法は
・Cookie 
 いわゆるtracking Cookieですが、この場合セキュリティソフトで消される場合がある。
・Web ビーコン
 ジャンプ先のサーバーで画像を出力させる。セキュリティを高レベルにしていると、表示して...続きを読む

QCGIでフォームを作ろうと思ったんですけど・・・

こんばんは!

今会社のホームページを作っていて、商品を注文するフォームを作っています。
最初ドリームウィーバーで作っていたんですけど、CGIを使ったほうがよいとネットに書いてあったのでCGIを使おうと思ったんですけど、私はCGIなんてまったく分からないので、とりあえずフリーのCGIの配布サイトからもらってきて、ドリームウィーバーに貼り付けて内容を少し変えようとおもったんです。

でも図書館から借りてきた本には『動作チェックを入念にしておかないとエラーが多発する』と書いてありました。

エラーというのはまったく知識のない私が対応できるんでしょうか?
もっと他のCGI以外の簡単なやり方があるのでしょうか?

どなたか知っていたらアドバイスお願いします。

ウィンドウズXPのドリームウィーバー4を使っています。

Aベストアンサー

知識がなければ対応はできません。
とりあえず、下記のようなサイトでcgiがどのようなものか勉強してみては
どうでしょうか?

上記はperlですが、サーバの環境によって色々方法はあります。
Windows系ならASP.NETなども視野に入れてみては?

QCGIでリンクさせたページを同一のページ内の iframe に表示させるには

CGIでリンクさせたページを同一のページ内の iframe に表示させるにはどうしたらいいでしょうか?

ちなみにCGIは
--------------------
#!/usr/bin/perl
$querybuffer = $ENV{'QUERY_STRING'};
@pairs = split(/&/,$querybuffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
if( $name eq "jumpto" ) {
$jumpto = $value;# 移動先
}
}

if( $jumpto ne "-" ) {
print "Location: $jumpto\n\n";
}
else {
print "Content-type: text/html\n\n";
print qq|<HTML>\n<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html ; charset=Shift_JIS">\n<TITLE>移動先が未指定です</TITLE></HEAD>\n|;
print qq|<BODY><H1>移動先が選択されていません。</H1><P>移動先を選択してからボタンをクリックして下さい。</P></BODY>\n|;
}
exit;
------------------
です。
iframe部分は以下のようにしています。

<iframe src="index.html" height=200 width=460>
この部分は iframe 対応のブラウザで見てください。
</iframe>

CGIでリンクさせたページを同一のページ内の iframe に表示させるにはどうしたらいいでしょうか?

ちなみにCGIは
--------------------
#!/usr/bin/perl
$querybuffer = $ENV{'QUERY_STRING'};
@pairs = split(/&/,$querybuffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
if( $name eq "jumpto" ) {
$jumpto = $value;# 移動先
}
}

if( $jumpto ne "-" ) {
print "Location: $jumpto\n\n";
}
else {
print "Content-type: text/html\n\n";
print qq|<HTML>\n<HEAD><...続きを読む

Aベストアンサー

勘違いがあったら御免なさい。
targetでフレーム名を設定していれば出来ると思います。
<a ref="http://www.xxxx.html/" target="framename">リンク</a>

参考URL:http://tohoho.wakusei.ne.jp/html/frameset.htm

QCGI自体の質問ではないのですが、CGIに関係があると思われるのでこち

CGI自体の質問ではないのですが、CGIに関係があると思われるのでこちらに質問させていただきます。

dropboxというストレージのサービスを行っているサイトがあるのですが、

↓こちらのサイトです。
https://www.dropbox.com/

ログイン後のフォルダ階層移動のURLは必ず
↓(コロン3つ)が付いているのですが、
--------------
:::
--------------


このコロン3つはどういう意味があるのでしょうか?
そもそも、このサイトのページ遷移の方法、htmlの書き換えの方法が知りたいです。

参考になるご意見を頂戴できればと思っています。
よろしくお願いします。

Aベストアンサー

>参考になるご意見を頂戴~
ということで。
アカウントはないのでこのサイトがどうかは分かりませんが、#や:はセパレータの感じがします。

cgiへの変数を渡す場合のクエリは、一般的には
act=home&id=12345&lang=ja&ref=reg& ~ のような形ですが、
SEO対策のためクエリを短くしたい、キー名を隠匿したい、などの理由により、
home:12345:ja:regist
などとして、スクリプト側でセパレータで分割してやる方法もよく取られます。
( : に限らず | など変数の値に使用しない文字なら何でもかまわない)

もし、そのサイト他のページを回ってみて、:12345::abcd: などと間に文字が入ることがあればセパレータで間違いないでしょう。
その場合、:::は単に「すべての値が空」ということです。

または、もしそのページのソースに <a name=':::'> や id=':::' が見つかれば、ページ内リンクのための単なるアンカーです。(それにしては不自然な命名ですが)


>このサイトのページ遷移の方法~
ざっと見、URLが/install ,/tour といった形式で終わっているので
mod_rewrite で内部で
http://example.com/○○○ ==>
http://example.com/コントローラ.cgi?page=○○○
のように変換しているかと。

方法は mod_rewrite で検索すればよい解説ページが沢山みつかります。

>参考になるご意見を頂戴~
ということで。
アカウントはないのでこのサイトがどうかは分かりませんが、#や:はセパレータの感じがします。

cgiへの変数を渡す場合のクエリは、一般的には
act=home&id=12345&lang=ja&ref=reg& ~ のような形ですが、
SEO対策のためクエリを短くしたい、キー名を隠匿したい、などの理由により、
home:12345:ja:regist
などとして、スクリプト側でセパレータで分割してやる方法もよく取られます。
( : に限らず | など変数の値に使用しない文字なら何でもかまわない)

もし、そのサ...続きを読む

Q心理テストページをCGIで作りたいのですが…

CGI初心者(というより全くわかりませんが・・・)ですがどなたか教えていただけませんでしょうか??

チェックボックスのチェックされたの数によって、
ジャンプするページを変えるには、
どのようなプログラムを組めば良いのでしょうか?

例えば、
チェックが0~5個だと、Aページへジャンプ。
チェックが、6~10個だと、Bページへジャンプとか、
そういう感じです。

いろいろ調べていたらCGIというものを使えばできるようですが、全く知識が無く困っています(泣)
HTMLならある程度は理解できます。
すみません、助言をよろしくお願いします。

Aベストアンサー

前の方が書かれているように、CGIはHTMLとは別物ですので、初心者の方がゼロから作るのはちょっと難しいと思います。

ですが、
> チェックボックスのチェックされたの数によって、
> ジャンプするページを変えるには、
これだけでしたら、CGIを使用せずにJavaScriptのみで実現できます。

HTMLはある程度理解できるとのことですが、JavaScriptはどうでしょうか?
一応サンプルを掲載しておきます。(本来であればクロスブラウザ対策なども記述する必要がありますが…)
----------------------------------
<html>
<head>
<title>Sample</title>

<script language="JavaScript">
<!--

function jump() {
count = 0;
for (var i=0;i<document.sampleform.elements["check"].length;i++){
if ((document.sampleform.elements[i].name == "check") &&
(document.sampleform.elements[i].checked)) {
count ++;
}
}

if (count == 0) {
// 一つもチェックされていない場合
location.href("http://www.yahoo.co.jp");
} else if (count <= 3) {
// チェックが3個以下の場合
location.href("http://www.google.co.jp");
} else {
// チェックが4個以上の場合
location.href("http://www.msn.co.jp");
}
}

//-->
</script>

</head>

<body>

<form name="sampleform">
<input type="checkbox" name="check" value="A"> A<br>
<input type="checkbox" name="check" value="B"> B<br>
<input type="checkbox" name="check" value="C"> C<br>
<input type="checkbox" name="check" value="D"> D<br>
<input type="checkbox" name="check" value="E"> E<br>

<input type="button" value="送信" onclick="jump();">
</form>

</body>
</html>

前の方が書かれているように、CGIはHTMLとは別物ですので、初心者の方がゼロから作るのはちょっと難しいと思います。

ですが、
> チェックボックスのチェックされたの数によって、
> ジャンプするページを変えるには、
これだけでしたら、CGIを使用せずにJavaScriptのみで実現できます。

HTMLはある程度理解できるとのことですが、JavaScriptはどうでしょうか?
一応サンプルを掲載しておきます。(本来であればクロスブラウザ対策なども記述する必要がありますが…)
--------------------------------...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報