2012-01-21 14 views
6

Dove posso memorizzare i parametri di configurazione sul lato client? Non ho la possibilità di memorizzare i parametri nei parametri di avvio di Servlet (web.xml) (perché devo usare PHP). Quindi, come posso memorizzare i parametri dell'applicazione init (ad esempio la posizione dello script PHP, alcune password ecc.) Sul lato client?Dove stringere i parametri di configurazione in GWT?

risposta

4

Per fare questo è necessario un seguenti opzioni: dati

  1. Conservare nel codice lato client. GWT compila fino alla javascript e il modo più semplice per farlo è quello di creare una classe Configuration con valori hardcoded.
  2. Memorizza i dati in un browser. È possibile utilizzare i cookie o HTML5 local storage
  3. Memorizzare i dati su un lato server e recuperarli utilizzando RPC remoto.

Consiglierei di andare con la terza opzione.

+0

grazie, ma per quanto riguarda un file, in cui posso modificare l'URL del percorso dello script php DOPO la compilazione? Problema con la classe di configurazione non buona. Per recuperare le informazioni dal server, la mia app deve conoscere l'URL del server :) Non desidero l'URL del server hardcode, voglio escluderlo in qualche file, che può essere letto su RUNTIME/ – MyTitle

+0

Il codice GWT è java e deve essere compilato e non ci sono file di proprietà sul lato client. L'alternativa è memorizzare le informazioni in alcuni file JS che possono essere sostituiti in fase di runtime. –

1

Memorizzare le password sul lato client? OK, se vuoi. Basta creare una classe che li trattiene, potrebbe essere un campo statico o un oggetto singleton con tutti i parametri. Potrebbe anche essere quello con entryPoint().

1

Il modo standard, semplice e semplice per memorizzare parametri non costanti (come password o dati utente) sul lato client sono i cookie. Vedere Cookies

Parametri costanti che è possibile memorizzare in hardcode (campi statici in alcune classi) o in file file .properties (See GWT i18n constants interface).

PS: Non ti suggerisco di memorizzare la password sul lato client "così com'è" (non è sicuro), invece puoi memorizzare l'hash della password (md5, per esempio). Basta calcolare l'hash della password sul lato server e memorizzare questo hash nei cookie.

2

Probabilmente sarai molto contento di utilizzare le classi Dizionario e Cookie in GWT.

Nel file di hosting html, si mantengono alcuni oggetti javascript dichiarati come var.

Al caricamento del modulo, chiamare la classe Dizionario per recuperare gli oggetti javascript che sono stati definiti per memorizzare i dati di configurazione.

In questo modo, è possibile avere una configurazione gestita dall'utente o sensibile al contesto lato server, perché occasionalmente utilizzo JSP per generare il file di hosting. Potrei gestire la configurazione utente come cookie lato server memorizzati in un database.

Quindi ... oggi è giovedì ... l'utente ha una cronologia di visite al sito Web di Manchester Utd FC ogni Thur, ecc., Consente di fornire all'utente una configurazione diversa basata su un contesto/algoritmo sensibile all'utente. E il lunedì mattina, la configurazione dell'utente includerebbe i dati degli annunci per 10 ore di bevande energetiche.

In questo modo, il client gwt non dovrebbe richiedere dati di configurazione sensibili al contesto dal server.

Ma ovviamente non è possibile memorizzare dati di autenticazione/sicurezza come password. Non penso che dovresti considerare di memorizzare i dati di autenticazione/sicurezza nel codice lato client. Anche dopo l'offuscamento di javascript, la memorizzazione di tali dati in questo modo è un invito aperto alla persistenza di intenti malevoli. Tali dati, se si desidera l'archiviazione lato client, sarebbero meglio serviti dai cookie lato client, utilizzando i cookie della classe GWT.

0

È possibile utilizzare MultiValuedConfigProperties (vedere anche this other helpful tutorial) per memorizzare i valori di configurazione. Usandoli, è possibile memorizzare la configurazione nel file di configurazione .gwt.xml del modulo. I valori di configurazione verranno compilati nell'output di JavaScript.

Problemi correlati