Newsgroup: it.comp.java
Titolo: JavaScript o Servlet ?

Salve a tutti  , devo prendere i dati di un utente tramite una pagina Html e
memorizzarli in un DB . Per fare questo uso le servlet . Quello che mi
chiedo è : volendo effettuare un controllo sui campi (nome cognome ad es.
non devono essere vuoti) conviene inserire del codice javascript che si
occupi di questo nella pagina generata dalla mia servlet e quindi spostare i
controlli sul client o lasciarli su una seconda servlet invocata dalla
pagina contenente il Form ? Una terza possibilità risiederebbe nelle JSP ,
ma fin'ora non sono riuscito ad usarle ; se qualcuno ha scaricato la
documentazione al riguardo dalla Sun ed ha voglia di discuterne.....
Grazie dell'attenzione.
P.S. : eliminare "leva" dall'indirizzo per rispondere.

 pagina contenente il Form ?
Eh, bella domanda :-)
Se sono controlli molto semplici puoi anche spostarli sul client, cosi'
eviti una chiamata a vuoto sul server, pero' tieni conto che Javascript
e' sempre una rogna (devi testarlo sui vari browser, etc) e poi cosi'
spezzetti i tuoi controlli sulle singole pagine anziche' averli in
un'unica
classe sul server.
Ti posso dire quello che farei io: farei i controlli sul server e
restituirei l'opportuno messaggio di errore. 
Ciao,
  Marina

Concordo:
utilizzare JavaScript portando il controllo sul client ha il vantaggio della
risposta immediata ma porta con se' troppi problemi: codice non piu' centralizzato
(e' il piu' grave), lungo debugging incrociato
sui vari browser per poche linee di codice (dovuto alle differenti impementazioni
di JS, non ad errori del programmatore), esclusione automatica di client non
JavaScript Enabled.
Un'altra soluzione elegante ma assai costosa in termini di tempo sarebbe quella di
utilizzare EcmaScript
(sottoinsieme comune delle varie implementazioni di JS) in modo dinamico sui form
tramite servlet side include in cascata. In pratica si tratterebbe di realizzare
una servlet  postprocessore dei form creati che in base alle direttive di ciascun
campo inserisce il relativo di codice di controllo EcmaScript.
Tale strumento sarebbe un componente assai riciclabile, quindi se di lungo
sviluppo potrebbe costituire una soluzione finale al problema (la stessa servlet
potrebbe riportare il controllo sul server
in caso di browser obsoleti...).
Marina Berati wrote:

--
Ing. Francesco Ciacca
Sinfor s.r.l.
via Nino Bixio 63
P.S. Giovanni
06087 Perugia
Italy
tel 
+39-075395047
fax 
+39-075396326
email: 
fran...@sinfor.it
web: 
www.sinfor.it

 P.S. : eliminare "leva" dall'indirizzo per rispondere.
Personalmente tenderei a spostare tutti i controlli sul lato server,
questo per evitare browser non abilitati ad eseguire gli script. PERO'
se il server non e' una macchina particolarmente potente, o gli utenti
finali sono particolarmente imbranati, ti suggerirei (ed è quel che sto
per fare anche io) di mettere ANCHE qualche pezzo di JavaScript
all'interno delle pagine, quantomeno per le validazioni piu' triviali
(ad esempio, il campo di password è vuoto...). Questo per evitare
chiamate al server che risultino magari in una pagina di errore
restituita dopo una connessione ed una interrogazione ad un database e
dovuta al fatto quest'ultimo non è riuscito a validare la password
perchè vuota. Certo, il codice in questo modo praticamente raddoppia, ma
finchè si tratta di campi e controlli semplici non ci divrebbero essere
TROPPI problemi per quanto riguarda il testing sotto IE e Navigator.
Commenti? Fatemi sapere, non si finisce mai di imparare ;)
	Stefano