クライアント側で設定パラメータをどこに保存できますか?サーブレットの初期化パラメータ(web.xml)にパラメータを格納することはできません(PHPを使用する必要があるため)。だから私はどのように私はクライアント側のinitアプリケーションのパラメータ(例えば、PHPスクリプトの場所、いくつかのパスワードなど)を格納することができますか?GWTにconfigパラメータを書き込む場所は?
答えて
次のオプションがあります:クライアント側のコードで
- ストアデータを。 GWTはjavascriptにコンパイルされ、これを行う最も簡単な方法は、ハードコードされた値を持つ
Configuration
クラスを作成することです。 - ブラウザにデータを保存します。 CookieまたはHTML5を使用できます。local storage
- サーバー側にデータを格納し、リモートRPCを使用してデータを取得します。
3番目のオプションをお勧めします。
クライアント側にパスワードを保存していますか?あなたがしたいならOK。それらを保持するクラスを作成するか、静的フィールドにすることも、すべてのパラメータを持つシングルトンオブジェクトにすることもできます。 entryPoint()
のものでもあります。
クライアント側に非定数パラメータ(パスワードやユーザーデータなど)を格納する標準的でシンプルな簡単な方法は、Cookieです。 Cookies
ハードコード(特定のクラスの静的フィールド)またはresoures .propertiesファイル(See GWT i18n constants interface)に保存できる定数パラメータ。
PS:パスワードを「そのまま」(それは安全ではありません)のようにクライアント側に保存することをお勧めしません。パスワードハッシュ(例:md5)を保存することができます。サーバ側でパスワードハッシュを計算し、このハッシュをクッキーに保存してください。これを行うには
おそらく、GWTのDictionaryクラスとCookieクラスを使用すると非常にうれしいでしょう。
あなたのhtmlホスティングファイルでは、varと宣言されたいくつかのjavascriptオブジェクトを管理しています。
モジュールの読み込み時に、設定データを格納するために定義したjavascriptオブジェクトを取得するためにDictionaryクラスを呼び出します。
このようにして、サーバーサイドで管理されたユーザーまたはコンテキスト依存の構成を持つことができます。これは、JSPを使用してホスティングファイルを生成することがあるためです。私はデータベースに保存されているサーバー側のCookieとしてユーザー構成を管理することができました。
だから今日は木曜日です...ユーザはThurなどのマンチェスターUtd FCウェブサイトを訪れた経緯があります。コンテキスト/ユーザーに敏感なアルゴリズムに基づいて別の設定をユーザーに教えてください。そして、月曜日の朝、10時間のエネルギー飲料の広告データをユーザー設定に含めます。
この方法では、gwtクライアントはサーバーから状況依存の設定データを要求する必要はありません。
もちろん、パスワードのような認証/セキュリティデータを保存することはできません。クライアント側のコードに認証/セキュリティデータを格納することを検討する必要があるとは思えません。 JavaScriptの難読化の後でさえ、このようなデータをこのように格納することは、悪意のある意図の永続化へのオープンな招待です。このようなデータは、クライアントサイドのストレージが必要な場合は、GWTクラスのCookieを使用して、クライアントサイドのクッキーによって最適に処理されます。
MultiValuedConfigProperties(this other helpful tutorialも参照)を使用して構成値を格納できます。それらを使用すると、設定をモジュールの.gwt.xml
設定ファイルに保存できます。設定値はJavaScript出力にコンパイルされます。
ありがとうございますが、コンパイル後にPHPスクリプトのURLの場所を変更できるファイルはどうですか? Configurationクラスの問題がうまくいかないサーバから情報を取得するには、私のアプリはサーバのURLを知る必要があります:)サーバのURLをハードコードしたくない、ランタイム/ – MyTitle
で読むことができるいくつかのファイルに除外したい、GWTコードはJavaであり、クライアント側にはプロパティファイルはありません。代わりに、実行時に置き換えることができるいくつかのJSファイルに情報を格納する方法があります。 –