• ベストアンサー

複数のCGIで変数などの値を共有するには。

Perl で記述した複数の CGI で値を共有することは出来るのでしょうか? Tomcat などのサーブレットコンテナでは、セッションオブジェクトというものが有り、一定の期間、任意のオブジェクトを複数のサーブレット間で共有する仕組みがあります。 Perl の CGI でそのような仕組みはあるのでしょうか? それを実現する場合、Perl CGI の場合、ファイルで共有するしかないのでしょうか? 宜しくお願いします。

  • Perl
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ファイル、データベース、共有メモリがあると思います。どれを採用すべきかは、複数サーバでの共有(レプリケーション)の要否、信頼性・性能要件などによります。 何にしろ、CGI::Session、Apache::Session、memcachedなど色々なモジュールがあるので、ゼロからセッション機構を実装する必要は無いと思います。 良いお年を。。。

den256
質問者

お礼

どうもありがとうございます。 いただいた情報を元に少し調べてみたいと思います。 良いお年を。

関連するQ&A

  • javaとperlのcgi

    掲示板やらなにやらを作って使うなら パールのCGIとサーブレットで作るのと どっちが良いですかねぇ? ちなみにどちらもPGなのでどっちも 使えますが、悩んでます 個人レベルのHPではないので サーバーを借りてるんですがどっちが良いですかね? (ちなみにどちらも動くです) サーブレットでのデメリットは何スカね? やっぱみんなcgiで作ってるからCGIのがめりっとあり? それともなんかあるんかな? あとトムキャットでもパールのcgi動きます? おしえてマンせー

    • ベストアンサー
    • Java
  • CGI::Sessionの使い方

    CGI::Sessionなどを使ったことがない初心者です。 どの端末から掲示板に投稿されたか識別するだけのために (セッションの画面遷移は不要) PerlのCGI::Sessionを使ってセッションIDを発行し、 CGI内のセッション記録用ファイルにいつどの端末から投稿されたか記録したいと思っています。 そこでCGI::Sessionについて調べてみたのですが my $session = new CGI::Session("driver:MySQL", $cgi, {Directory=>'./session'}); データーベースはMySQLでなければいけないのでしょうか? My SQLではなく例えばディレクトリ内のdate/session-date.textなどに記録し、 扱いことはできないのでしょうか? またそのような場合にはどのように記述するのか教えてください!

    • ベストアンサー
    • Perl
  • sessionスコープとapplicationスコープ

    の違いを教えてください。 sessionスコープ: HTTPセッション間でデータを共有したい場合に使用します。これにより、異なるページ間でブラウザを閉じるまで、もしくは一定時間経過するまでデータを共有することができます。 applicationスコープ: webアプリケーション間でデータを共有したい場合に使用します。webアプリケーション間とは、サーブレットコンテナに設定されるwebアプリケーション内のことを言います。 ではよく分からないのでどちらがより広いのかどういう場合にどっちなのかを具体的に教えてください。

    • ベストアンサー
    • Java
  • tomcatでCGIが動きません

    tomcatをwebサーバーにしてCGI(Perl)を動かそうとしています。 非常に単純なCGIを適切な場所に配備して動作させようとしていますが、 ネスケにて「ドキュメントにデータが含まれていません。」のエラーが 発生してしまいます。tomcatのlogsディレクトリーのログを見ると、 . . 2003-11-14 11:28:12 cgi: findCGI: FOUND cgi at C:\Program Files\...\webapps\test\WEB-INF\cgi\test.cgi . 2003-xx-xx 11:28:12 cgi: runCGI (stderr):Can't open perl script "C:\Program": No such file or directory 2003-xx-xx 11:28:12 cgi: runCGI: 1 lines received on stderr と出ているので、CGIは見つけているみたいですが、runCGIにてc:\programを探そうとして失敗している様です。 tomcatのインストール先はc:\program files\apache group.....なのですが、 結局のところ、tomcatのインストール先ディレクトリーにブランクがあると×という事なのでしょうか? 勿論、tomcatでCGIを使用する場合の各種設定(servlets-cgi.renametojarのりネームや、web.xml内の マップのコメントはずし等)は行っています。CGIは以下です。 #!C:/usr/local/bin/perl.exe print "<HTML><BODY>Helloworld</BODY></HTML>"; 環境は os:win2000 web server:tomcat4.1.27 active perl5.8 駄目ならば、apacheをwebサーバーにして再挑戦しようと思います。お願いします。

    • ベストアンサー
    • CGI
  • CGI::SessionってPurePerlなのですか?ライセンスは?

     お世話になっております。 以下のWebサイトに http://digit.que.ne.jp/work/wiki.cgi?Perl%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%2FWalrus%3A%3ASession%3A%3ALite#i6 CGI::SessionがPurePerlである、と記載されておりますが これは本当でしょうか? C言語などのバイナリ型のCGIが禁止されているCGI::Session未インストールのレンタルサーバでも ユーザ用のディレクトリ(最近はこれに限定されない場合が多いけどcgi-binディレクトリなど)にCGI/Session.pmファイルとCGI/Sessionディレクトリ、それからauto/CGI/Sessionディレクトリなどを置くことで利用できますでしょうか? それからCGI::Session(依存プログラムも含めて)のライセンスは何が採用されているのでしょうか?デュアルライセンスであれば採用されている複数のライセンス名すべてを教えていただきたいのですが? Perlに詳しい方、ご教授よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • マルチスレッドでのインスタンス変数

    http://itpro.nikkeibp.co.jp/article/COLUMN/20070820/279950/ このサイトに以下ような趣旨の記述があり、信じられない気持ちでいっぱいです。 「マルチスレッドのケース(たとえばサーブレットでは、)インスタンス変数はヒープ領域に 保持されるので、複数のスレッドからアクセスされるので情報が書き換えられる場合がある」 信じられないのは、インスタンス変数が書き換えられるということです。 サーブレットではインスタンス変数が共有されるのは理解していますが、 サーブレットから呼ばれるインスタンスで定義されているインスタンス変数も それに該当するのでしょうか。 それとも、サーブレット内だけの話で、サーブレットから呼ばれるインスタンスでは インスタンス変数は独立していると思ってよいでしょうか。 後者の認識ですが、こういう書き方をされると、サーブレットから呼ばれた先でも インスタンス変数が共有されると読めて、怖くて仕方ないです。

    • ベストアンサー
    • Java
  • cookieを介さずにCGI/PerlとセッションIDを遣り取りする方

    cookieを介さずにCGI/PerlとセッションIDを遣り取りする方法 Adobe AIR HTML/Ajax で cookieを介さずにサーバーのCGI/PerlとセッションIDを遣り取りする方法について、何か情報ありませんでしょうか。 AIRはcookieをOSと共有するようなのですが、既定ブラウザがFirefoxの場合、共有できません。 幸い、AIRはローカルでのファイル操作が可能なので、自前でセッションIDの遣り取りと管理をさせたいと考えております。 で、以下の様にしてみましたが、nullが返ってくるだけでした。 PerlのセッションID発行はCGI::Sessionを使用しています。 [code] var cgi_url = 'http://server_name/cgi/session.pl'; var login_name = 'hoge'; var login_auth = 'fuga'; var msg = $.ajax( { type :'POST', url :cgi_url, data :'login_name=' + login_name + '&login_auth=' + login_auth }).responseText; alert(msg); [/code]

  • セッションスコープについて

    はじめまして。javaの初心者です。 どうしてもわからないことがあります。 それは、同一コンピュータで、例えば、サーブレット でセッションオブジェクトを作成して、それに属性 を設定しておいて、JSPページに転送を行うと、 その転送先のJSPページでは、属性を取得することは できるのですが、同一コンピュータで別のブラウザを 起動してそのJSPページに直接アクセスすると、属性が 取得できない状態になります。参考書では、 「同じコンピュータからの複数のリクエストは 同一セッションとみなされる。」と記述されています。参考書のような状態になるには、何か設定が 必要なのでしょうか?どうか教えてください。お願いします。ちなみに現在Tomcat5.5.17とjdk1.5.0_06を 使用しています。

    • ベストアンサー
    • Java
  • CGIについて質問です 基本の基本です

    CGIについて勉強しようと考えているのですが全く意味が分かりません。 ブラウザの要求に対して、プログラムを起動さすためのサーバー側の仕組み。ということは分かるのですが、HPの中でどういう風に使用すればいいのでしょうか。 JavaScriptみたいに記述するのでしょうか。 それともCGIはサーバー側のシステムでこちらはPHPやPerl(PHPやPerlも言語ということしか分かりません。JavaScriptと同じ様な捉え方でいいのでしょうか)を使ってCGIを起動さすという考え方でいいのでしょうか。 全く知識はありませんが、WEBに関して色々勉強したいと考えているのでよろしくお願いいたします。

    • ベストアンサー
    • CGI
  • CGI版PHPについて

    一般的なPerlのCGIが実行可能な状態のApache(Linux上)にCGI版のPHPを追加インストールした場合、ApacheはスクリプトがPerlであるかPHPであるかの違いをどう認識するのでしょうか? 方法1 スクリプトはどちらも*.cgiとして作成し、スクリプト内先頭行のperlやphpへのパスの記述で認識する 方法2 perl→*.cgi php→*.php のようにhttpd.confや.htaccessで設定する 初心者のためこの二つくらいしか思い浮かばないのですが、どちらかが正解だったりしますか??

    • ベストアンサー
    • PHP

専門家に質問してみよう