Esistono due tipi di progetti Web: i progetti dinamici e i progetti statici. I progetti Web dinamici possono contenere risorse J2EE dinamiche come servlet, file JSP, filtri e metadati associati, e risorse statiche come immagini e file HTML. I progetti Web statici possono contenere solo risorse statiche. Quando si creano progetti Web, è possibile includere CSS (cascading style sheets) e librerie di tag JSP (per i progetti Web dinamici) in modo da poter iniziare lo sviluppo con una serie più completa di risorse del progetto.
I progetti Web dinamici sono sempre integrati in progetti Enterprise Application.
La procedura guidata che viene utilizzata per creare un progetto Web dinamico crea anche un progetto Enterprise Application (EAR) se questo non esiste già. La procedura inoltre aggiorna il descrittore di distribuzione application.xml del progetto Enterprise Application specificato per definire il progetto Web come elemento di modulo. Se si importa un file WAR invece che creare un nuovo progetto Web dinamico, la procedura guidata Importazione WAR richiede la specifica di un progetto Web, che a sua volta richiede un progetto EAR.
Le convenzioni J2EE possono rappresentare un carico aggiuntivo se si desidera creare soltanto un'applicazione Web statica basata sul contenuto, che non contiene file dinamici, come file JSP o servlet. In questo caso, quando è necessario un progetto Web di base, è necessario utilizzare il tipo di progetto Web statico (vedere Progetti Web statici).
I progetti Web statici possono essere convertiti in progetti Web dinamici selezionando Converti in un progetto Web dinamico dal menu Progetto.
Il modello J2EE, e più in particolare la specifica Sun Microsystems Java Servlet
2.3, definisce una struttura di directory di applicazioni Web che specifica il percorso dei file di contenuto Web, i file di classe, i percorsi classe, i descrittori di distribuzione e i metadati di supporto. La gerarchia dei progetti Web riflette l'applicazione Web creata da un progetto. Nel workbench, è possibile utilizzare la procedura guidata Nuovo progetto Web per creare un nuovo progetto Web.
La cartella del progetto principale contiene tutti gli oggetti di sviluppo relativi a una applicazione Web. La cartella del contenuto Web contiene gli elementi del progetto necessari alla creazione di un'applicazione Web. Questa struttura di cartelle è associata alla struttura WAR (Web archive) dell'applicazione definita da Sun Microsystems. I seguenti elementi predefiniti si trovano nella gerarchia delle cartelle dei progetti Web:
Nota: Nella vista Esplora progetti, i progetti Web sono filtrati in nodi di cartelle in modo da personalizzare la visualizzazione delle risorse Web per una più semplice gestione durante la fase di sviluppo. Per informazioni sulla struttura filtrata, fare riferimento a
Vista Esplora progetti.
- Descrittore di distribuzione Web
- Il descrittore di distribuzione delle applicazioni Web standard (il file web.xml).
- JavaSource
- Contiene il codice sorgente Java per classi, bean e servlet. Quando queste risorse vengono aggiunte a un progetto Web, queste vengono automaticamente compilate e i file generati vengono aggiunti alla directory WEB-INF/classes.
Il contenuto della directory sorgente non viene assemblato nei file WAR a meno che non sia specificata un'opzione quando viene creato un file WAR.
Nota: Benché il nome predefinito assegnato alla cartella sia JavaSources, è possibile modificare questo nome facendo clic con il tasto destro del mouse su di esso in Esplora progetti e facendo clic su .
- Cartella classi_importate
- Questa cartella può essere creata durante un'importazione WAR e contiene i file di classe che non hanno una origine associata. La cartella classi_importate è una cartella di classi Java; tali cartelle di classi Java possono essere create anche utilizzando la pagina delle proprietà Percorso di generazione Java del progetto Web.
- Cartella WebContent
- Il percorso obbligatorio di tutte le risorse Web, come file HTML, JSP, grafici e così via. Se i file non vengono inseriti in questa directory (o in una struttura di sottodirectory in questa directory), i file non saranno disponibili quando l'applicazione verrà eseguita sul server. La cartella del contenuto Web rappresenta il contenuto del file WAR che verrà distribuito sul server. Tutti i file che non sono contenuti nella cartella del contenuto Web sono considerati risorse di sviluppo (ad esempio, file .java, file .sql e file .mif) e non verranno distribuiti fino a che il progetto non viene verificato o pubblicato.
Nota: Benché il nome predefinito assegnato alla cartella è WebContent, è possibile modificare il nome in Esplora progetti facendo clic con il tasto destro del mouse sulla cartella e selezionando RefactoringRinomina o dalla pagina Web della finestra di dialogo Proprietà del progetto. In un progetto Web dinamico, la modifica del nome della cartella aggiornerà la directory di output di generazione Java.
- META-INF
- Questa directory contiene il file MANIFEST.MF, utilizzati per associare i percorsi classe per i file JAR dipendenti di altri progetti nello stesso progetto Enterprise Application. Una immissione in questo file aggiornerà la classe del progetto di runtime e le impostazioni di generazione Java per includere i file JAR di riferimento.
- theme
- La directory suggerita per i CSS (cascading style sheets) e altri oggetti relativi allo stile.
- WEB-INF
- In base alla specifica Sun Microsystems Java Servlet 2.3, questa directory contiene le risorse Web di supporto per un'applicazione Web, compreso il file web.xml e le directory classes e lib.
- /classes
- Questa directory è per i servlet, le classi di utilità e la directory di output del compilatore Java. le classi in questa directory sono utilizzate dal programma di caricamento classi dell'applicazione per caricare le classi. Le cartelle in questa directory associano nomi di pacchetti e classi, come in /WEB-INF/classes/com/mycorp/servlets/MyServlet.class.
Non posizionare i file .class direttamente in questa directory. I file .class vengono posizionati automaticamente in questa directory quando il compilatore Java compila i file di origine Java che si trovano nella directory Risorse Java.
Tutti i file inseriti direttamente in questa directory verranno eliminati dal compilatore Java durante l'esecuzione.
- /lib
- I file JAR di supporto a cui fa riferimento l'applicazione Web. Tutte le classi .jar inserite in questa directory saranno disponibili per l'applicazione Web.
- Librerie
- I file JAR di supporto a cui fa riferimento l'applicazione Web. Questa cartella riporta il contenuto della cartella lib. Inoltre, in questa cartella sono inclusi anche i progetti delle librerie Web, che sono file JAR "virtuali" che non si trovano fisicamente nel progetto Web ma che sono associati ad altri progetti Java nel workspace. Questi sono assemblati con il progetto quando viene esportato il file WAR dell'applicazione.
Nota: Una voce di libreria nel percorso di generazione Java rimarrà la stessa fino a che il file JAR non viene eliminato dalla cartella WEB-INF/lib. Se si rimuove una voce del percorso libreria ma non il file JAR, la voce della libreria verrà aggiunta automaticamente di nuovo al percorso.