2011-06-22 10 views
3

私はウェブアプリケーションを書く初心者ですので、愚かな質問の場合は協力してください。私たちのWebアプリケーションはtomcat 6を使ってホストされています。ユーザーが対応するボタンをクリックすると、サーバーで実行されるC++コードがいくつかあります。クライアント側はhtml/JSで書かれ、tomcatを使ってホストされます。Tomcatサーバーを使用してサーバー側でC++コードを実行する方法は?

私の問題は、HTMLページでボタンをクリックしたときにこのC++コードがどのように実行されるのか知りません。誰でも助けてくれますか?

Tomcatから他のサーバーに変更できますが、コードはC++にする必要があります。あなたが他のサーバー(ワンプやスマッシング)やリンクを持っていれば同じことができます。あなたサーブレットは、C++のコードを実行させるためにJNIを使​​用することを試みることができる。私はTomcatの、Javaサーブレットコンテナは間違いでC++のコードを実行するために最も適切な車両ではありません

+0

あなたのC++をある種のCGI呼び出しに関連付けてHTMLボタンを関連付ける必要がありますが、詳細はわかりません。 – duffymo

答えて

4

を教えてください、それはように私には思えます古いCGIのようにはるかに簡単で信頼できる方法があります。 Tomcatは、説明したようにCGIを行うことができます。here、いくつかの制限と制限があります。

更新:私は、CGIルートが行く方法であることに同意すると思います。ほとんどのWebサーバーではCGIを実行できますが、Tomcatの場合よりも簡単になります。 gnu cgicc(素敵なチュートリアルhere)やcgicのように、コードをWebサーバーに接続する作業をライブラリに委譲することをお勧めします。プレーンな古いWAMP(ここではWAの部分を使用します)とサンプルコードは、あなたをすぐにスピードアップするはずです。残りは、かなり標準的なWeb開発になります。

+0

それで、どのサーバを使ってC++コード(wampかsmthing)を実行するべきですか?私はサーバーを変更することができますが、コードはC++でなければなりません – ashmish2

1

https://stackoverflow.com/questions/175507/c-c-web-server-library答えがあなたを助けてくれるかもしれません。

Tomcatがもはや要件ではないとすれば、別のHTTPフロントエンドを使用すると、あなたの人生が楽になるかもしれません。

もしあなたがTomcatを使うと決めたら、Which C++ Library for CGI Programming?はライブラリを選ぶのに役立ちます。

Apacheを使用している場合、CGIの代わりにプラグインモジュール自体を書くことができます。これにより、パフォーマンスが大幅に向上します。私はこれらの答えのいずれかの質問に対処わからない

グッドラック

1

(他のWebサーバは、一般的に...も同様のプラグインの方法論を持っています)。 C++を使用してCGIを記述することは、サードパーティのライブラリを使用するかどうか、またはTomcatを含むどのWebサーバーが実行されているかにかかわらず、Webサーバーによって設定された環境変数を読み取ることを意味します。次の例は、最も興味深い入力であるクエリー文字列を取得するためのクイックアンドダーティな方法です。あなたが始めているのであれば、基本から始める方が良いと思うので、ある種の外部ライブラリを使うことに決めたら、あまり神秘的ではないように思えます。これは、あなたに十分なGoogleをヒットし、何が起こっている仕事を与える必要があります。

注出力にはContent-Typeを指定します。これはHTTPヘッダーです。ダブルエンドの前に任意の数のヘッダーを追加できます。電球の瞬間には、Content-Typeをtext/plainに変更してみてください。

(一般をtomcat_root/webappsに/ ROOT/WEB-INF/cgiのだTomcatの)あなたのCGIディレクトリにコピー、shiney_cpp_cgiするサンプルコードをコンパイルし、その後、GETメソッドを使用するなど、ブラウザでそれを打つ:

myserver.mydomain:myport/cgi-bin/shiney_cpp_cgi?foo=bar 

などCURLを使用して、POSTリクエストで送信するには:

curl --data 'foo=bar' myserver.mydomain:myport/cgi-bin/shiney_cpp_cgi 

をTomcatのからC++を果たすために、あなたはをtomcat_root/confに/ web.xmlのを編集し、空の文字列に実行可能に変更することができます。デフォルトでは、TomcatはあなたのC++をperlスクリプトとして実行しようとします。perlは(うまくいけば!)解析できません。

関連する問題