Sicuramente è una soluzione....
Corretta : certamente, fa quello che deve fare
Efficiente : diciamo di si.
E' la migliore: secondo il pattern MVC (che secondo me è obbligatorio soprattutto nel web) assolutamente no. Le pagine non dovrebbero contenere nessun codice java e soprattutto non devono contenere codice che fa parte della bussiness logic.
Ovviamente queste osservazioni vengono dalla mia esperienza e nn sono assolutamente regole generali e che devo essere applicate a qual si voglia progetto.