Newsgroup: it.comp.java
Titolo: Come strutturare una webapp?

Salve a tutti,
è da un po' che seguo il ng e da un po di tempo ho cominciato a 
dedicarmi alla realizzazione di web application.
Sono già passato per diversi libri e tutorial...ma vorrei sentire anche 
il parere di chi ci lavora o chi ha già affrontato un problema simile:
	Come è consigliabile strutturare una webapp che dovrà svolgere alcuni 
compiti...tra cui interfacciarsi con un database e con dei file xml?
(semplicemente...avere una struttura di base su cui poter 
costruire....con l'aiuto anche dei javabean ad esempio un sistema di 
login utente...o una cosa simile...)
So che non è una cosa semplicissima...per questo mi sono documentato 
abbastanza in precedenza...e la cosa non nasce proprio da zero...ma 
dovendo affrontare la realizzazione di una webapp un po' più 
completa...non vorrei commettere gravi errori di strutturazione.
Grazie in anticipo per la disponibilità,
e come al solito, spero di non aver esposto il problema in maniera 
incomprensibile,
jRed
PS: quasi dimenticavo...jdk1.5 + tomcat5.5.4 + mySql...almeno per il 
test di tutta l'applicazione :-)

 dedicarmi alla realizzazione di web application.
Un mio suggerimento spassionato: se non hai vincoli particolari, ti 
conviene sviluppare direttamente su un application server tipo jboss 
(anzi, proprio su jboss) che include come servlet engine lo stesso 
tomcat ma allo stesso prezzo ti da diverse features in più. Per quanto 
riguarda la login ad esempio, jboss ha la possibilità di definire in 
molto semplice dei domini (login-config.xml) e farci partecipare la tua 
applicazione. Così come per definire i DataSource delle tue connessioni 
al database non hai che da copiare nella directory di deploy il file 
descriptor che trovi fra gli esempi e ce l'hai disponibile per la tua 
webapp. Lo stesso deployment della tua applicazione è banale: è 
sufficiente che sia in una sottodirectory di deploy chiamata nomeapp.war 
o impacchettata sotto forma di file war con lo stesso nome, e viene 
pubblicata automaticamente nel contesto /nomeapp (chiaramente se hai 
bisogno di un deployment diverso bisogna lavorare un po' di più, ma già 
in questo modo vedi partire il tuo programma).
Per il resto: devi sceglierti un framework per la presentazione fra 
quelli consolidati (forse structs?) e opzionalmente puoi decidere di 
usare un servizio di accesso al database come hibernate.
Il resto è lavoro :)

 conviene sviluppare direttamente su un application server tipo jboss...
Non è da molto che mi sono addentrato nel mondo delle webapps e, come 
tutti i buoni principianti, dopo essere passato su qualche libro e 
tutorial, ho cominciato a lavorare con Tomcat....:-)
Via via con l'esperienza ho conosciuto anche il pattern MVC ma non ci ho 
mai lavorato ancora, pur conoscendo l'esistenza dei vari jBoss (un 
ottimo progetto...), Resin, Bea, ecc, passando anche per sporadiche 
citazioni di Hibernate, Torque e Structs....ma purtroppo non ho ancora 
avuto l'occasione di metterci le mani sopra! :-(
In parole povere...pur non avendo limitazioni...quanto mi conviene 
intraprendere lo sviluppo su piattaforma jBoss?
La prospettiva è molto interessante ma non avendo mai sviluppato sotto 
jBoss non saprei come gestirla. (Sono molte le differenze concettuali 
nelle realizzazioni sotto jBoss e sotto Tomcat?)
Se un percorso del genere è fattibile qualche buon consiglio, libro, 
tutorial?!
Grazie in anticipo,
jRed

 intraprendere lo sviluppo su piattaforma jBoss?
Allora... facciamo un distinguo.
jboss è un application server j2ee-compliant, implementa quindi tutte le 
tecnologie correlate. E' chiaro che se ti butti a pesce su queste 
tecnologie ne esci con le ossa rotte, ma non è necessario.
Io suggerivo jboss per questi motivi:
- Usa tomcat come servlet engine, quindi è "tecnicamente" la stessa cosa
- Il deployment di base è IMHO anche più facile di tomcat, basta copiare 
il file .war dentro la directory server\default\deploy o copare la tua 
webapp in una sottodirectory con estensione .war.
- DataSource e connection pooling sono implementate con JBossJCA, 
configurabili in modo veramente elementare.
- Sicurezza e single-sign-on sono anch'esse configurabili in modo 
elementare, in particolare con JBoss 4 è già disponibile un loginmodule 
per la login da database: basta impostare le due select che reperiscono 
le credenziali e i ruoli dell'utente (con esempio).
In pratica, non c'è differenza fra *sviluppare* una webapp per jboss o 
per tomcat. La differenza è nel deployment e IMHO su jboss è 
complessivamente più semplice.

 webapp in una sottodirectory con estensione .war.
Grazie ancora,
jRed
PS: Lo fa anche tomcat...e poi in fin dei conti...come hai detto tu, 
dentro jBoss c'è Tomcat! :-D (non è una polemica...ma  avevo già 
usufruito di questa feature con Tom!)
PPS: Vincent grazie tanto...