Quindi in pratica se ho queste classi per un applicazione di login é giusto scomporle in questo modo?
************************************************** *************************
[Premessa]
Il DB MySQL è una semplice tabella Utente con tre campi, ID, nome_utente e password
1) Form.html (View)
Creo una pagina HTML che contiene un form in cui l'utente può inserire nome utente ed password. Appena preme "Invio" questi valori vengono passati ad una servlet
2) UserServlet.java (Controller)
La servlet prende questi dati che Form.html gli ha passato e, attraverso le chiamate ai metodi della parte di Model che interagisce col database, li processa ed invia i risultati ad una JSP
3) User.java, Login.java (Model)
User.java è un javabean, ovvero, un oggetto che è la versione speculare della mia tabella (proprietà e metodi get/set)
Login.java ha le istruzioni JDBC utili ad interagire col DB, cioè il metodo per effettuare il login. Si serve di oggetti di tipo User. E' questo il mio business object
4) Result.jsp (View)
E' una JSP che mostra i risultati che il Controller, cioè la Servlet, gli ha passato.
************************************************** *************************
Il classico modello MVC prevede tre layer, ma prima mi avete detto che Il Business Object è un layer a parte....ho alcuni dubbi in proposito.
Non dovrebbe invece far parte del layer Model, visto che il layer Model è definito come "quel codice che contiene i dati o i metodi per interagire con essi"? Penso sia questa la cosa che non mi è chiara!
Cioè...da quello che ho capito alla fine il business object è una semplice classe ma gli viene dato questo nome giusto per far capire che è la classe che contiene il mio codice applicativo, cioè il metodo chiave e più importante della mia applicazione...allo stesso modo in cui anche un JavaBean non è altro che una semplice classe ma gli viene dato questo nome giusto per indicare che è quella classe che contiene la versione speculare ad oggetti della mia tabella.
Mi viene l'impressione che questi termini siano nati con l'intenzione di aiutare i programmatori a "dialogare" tra loro, nel senso che si fa prima a dire a qualcuno "fammi il JavaBean della tabella", rispetto a dire "fammi la versione speculare ad oggetti della tabella creandomi una classe che abbia come variabili i nomi delle colonne della tabella con dei metodi di lettura/modifica associati".
E' corretto quello che ho detto o sto facendo un sacco di confusione?
Grazie
Matteo