1

私の質問に対する答えはNOだと思います。しかし、それでも、たとえばApacheHTTPDサーバーでフロントエンドとしてgwtアプリケーションを実行することは可能でしょうか。コンパイルされたgwtは純粋なjavascriptであり、javaバックエンドを必要としないという考え(javaベースのRPCを使用しない場合)

4

4 に答える 4

3

あなたを止めるものは何もありません。GWT コードは 2 つの部分に分けられます。サーバー側とクライアント側のコード。あなたが言うように、クライアント側のコードは、httpd で簡単に提供できる純粋な JavaScript にコンパイルされます。

サーバー上で gwt のクラスを使用する主な利点は、RPC 経由で要求したデータが、ユーザー側で何もしなくても Java オブジェクトとしてクライアント コードに届くことです。ただし、 RequestBuilderクラスを使用するか、さらに制御が必要な場合はXMLHttpRequestを使用して、古いサービスを簡単に呼び出すことができます。

編集: httpd がクライアント側の gwt コードで適切に動作するようにするために、特別な構成を行う必要があります。

<Files *.nocache.*>
    ExpiresDefault "access"
</Files>
<Files *.cache.*>
    ExpiresDefault "now plus 6 months"
</Files>

これにより、アプリの新しいバージョンをアップロードすると、ユーザーのブラウザーはそれを自動的にダウンロードしますが、Web サイトにアクセスするたびにアプリ全体をダウンロードすることもありません。非常に便利。

于 2012-06-19T10:00:32.383 に答える
2

あなたの意見は間違っています。フロントエンド専用に設計された gwt アプリケーションを作成できます。次のことができることをテストするには

  1. フロントエンド コンテンツのみを含むサンプル gwt アプリケーションを作成する
  2. アプリケーションのコンパイルとビルド
  3. ビルド コンテンツ フォルダーを Apache Web ディレクトリに配置します。
    Ee : というプロジェクトを作成した場合test-gwtJSとのHTML内容はtest-gwtディレクトリ内に作成されたwarディレクトリにあります。
  4. 次のように、Web ブラウザーを介して新しいアプリケーションにアクセスします。http://localhost/test-gwt

これが役立つことを願っています。

于 2012-06-19T09:17:53.027 に答える
1

「Apache HTTPD サーバーなどで gwt アプリケーションをフロントエンドとして実行できるかどうか疑問に思っています」.

答えはノーだ。GWT UI フロントエンドはどのサーバーでもまったく実行されません。Javascript が有効になっているブラウザでのみ実行されます。

しかし、質問の言語セマンティクスを無視し、その要点に答えると、答えはイエスです。すみませんが、あなたが書くべき言語は

「Apache HTTPDサーバーからgwtアプリケーションフロントエンドを提供することは可能ですか」.

サーブレットなしの war を HTTPD にデプロイするだけです (WEB-INF フォルダーを削除します)。

実際、GWT モジュール開発の "public" フォルダーに配置されたファイルから静的 json ストリームを要求する RequestBuilder 要求を作成することもできます。GWT コンパイラーが「public」フォルダーの内容をデプロイされたアプリケーションのルートにコピーする場所。

または、script-include を使用して、動的コンテンツ jsonp に対する GWT クライアント要求を別のサーバーから取得することもできます。この場合、アプリにサーブレットは作成されません。ここでスクリプト インクルード手法を文書化しました: http://h2g2java.blessedgeek.com/2011/06/gwt-requestbuilder-vs-rpc-vs-script.html

于 2012-06-20T06:46:22.500 に答える
1

サーバーコンポーネントをgwtで書かない限り、それは可能であり、魅力のように機能します。

これは、単純な gwt クライアントのみのhtaccess パスワード アプリ(現在はドイツ語のみ) の例です。楽しみのためにコーディングしました。

于 2012-06-19T09:17:45.007 に答える