Java lato server: elaborazione avanzata dei moduli mediante JSP

In genere, l'elaborazione del modulo coinvolge più componenti che operano in background, con ogni componente responsabile di un'attività distinta come la gestione dello stato, la convalida dei dati, l'accesso al database e così via. Sebbene vi siano numerosi esempi che dimostrano l'elaborazione dei moduli con script e servlet Perl, l'utilizzo di JSP per questo scopo ha ricevuto poca attenzione. C'è una ragione per questo. A parte il fatto che JSP è una tecnologia abbastanza nuova, molti la considerano adatta principalmente per la gestione della presentazione di contenuto dinamico proveniente da JavaBeans o servlet. Tuttavia, come vedrai presto, la combinazione di JSP con JavaBeans può essere una forza con cui fare i conti durante l'elaborazione dei moduli HTML.

In questo articolo, esaminerò la gestione di un modulo di registrazione utente utilizzando JSP. Uno dei principi di programmazione di base di JSP è delegare quanta più elaborazione possibile ai componenti JavaBean. La mia implementazione di gestione dei moduli JSP mostrerà alcune caratteristiche interessanti. Non solo fornirà la convalida dei dati di base per le informazioni di registrazione immesse da un utente, ma mostrerà anche un comportamento stateful. Ciò consente di precompilare gli elementi di input del modulo con dati convalidati mentre l'utente esegue il ciclo di invio e infine inserisce i dati corretti per tutti gli elementi di input. Quindi, senza ulteriori indugi, tuffiamoci nell'esempio.

Dai un'occhiata al Listato 1, che presenta all'utente un semplice modulo di registrazione, mostrato nella Figura 1.

Listato 1. register.html

   
REGISTRAZIONE UTENTE

* Campi richiesti

Nome di battesimo*

Cognome*

E-mail*

Cap*

Nome utente *

Parola d'ordine*

Conferma password*

Che musica ti interessa?

Rock Pop Bluegrass

Blues Jazz Country

Vuoi ricevere notifiche via e-mail sulle nostre vendite speciali?

si No

La figura 1 mostra il modulo di registrazione dell'utente come apparirebbe in un browser.