JAR vs WAR
JAR e WAR sono due tipi di archivi di file. Più correttamente, un file WAR è anche un file JAR, ma vengono utilizzati per scopi diversi. I file JAR sono come file ZIP ben noti. Possono essere utilizzati per qualsiasi archiviazione generica, ma l'uso più diffuso dei file JAR li utilizza come contenitori per file di classe Java e file di risorse che costituiscono un'applicazione java. I file WAR vengono utilizzati specificamente per la distribuzione di applicazioni web.
Cos'è JAR?
JAR (Java ARchive) è un archivio di file che contiene molti altri file. I file JAR vengono solitamente utilizzati dagli sviluppatori Java per distribuire applicazioni Java o librerie Java utilizzando i file JAR come contenitori per i file di classe Java e i file di risorse corrispondenti (ad es.e. testo, audio, video, ecc.). Il noto formato di archiviazione dei file ZIP è la base su cui si basa il file JAR. Gli utenti possono utilizzare il comando jar del JDK (Java Development Kit) o il normale software ZIP per estrarre il contenuto dei file JAR. I file JAR sono un modo molto conveniente per scaricare un'intera applicazione Web in un unico file, senza dover scaricare tutti i file che compongono l'applicazione Web separatamente. Per leggere/scrivere file JAR, gli sviluppatori Java utilizzano le classi contenute nel pacchetto java.util.zip. Se il file JAR deve essere eseguito come applicazione autonoma, una delle classi verrà specificata come classe "principale" all'interno delle voci del file manifest. I file JAR eseguibili possono essere eseguiti utilizzando il comando java con l'attributo jar (ad esempio java -jar foo.jar).
Cos'è WAR?
WAR (Web Application aRchive) è un file JAR utilizzato come contenitore per un gruppo di file di risorse di applicazioni Web (che costituiscono un'applicazione Web) come JSP (Java Server Pages), servlet, file di classe, XML file e pagine Web (HTML). I file WAR sono identificati dalla loro estensione di file.war. Sono stati sviluppati da Sun Microsystems (sviluppatori originali del linguaggio di programmazione Java). Le firme digitali utilizzate sui file JAR (per affidare il codice) possono essere utilizzate anche sui file WAR.
Un file WAR è organizzato internamente in una gerarchia di directory speciali. La struttura dell'applicazione web contenuta nel file WAR è definita nel file web.xml (che risiede all'interno della directory /WEB-INF). Web.xml descrive anche quale URL è connesso a quale servlet. Definiscono anche le variabili accessibili all'interno del server e le dipendenze che devono essere impostate. Tuttavia, se il file WAR contiene solo file JSP, il file web.xml è facoltativo.
Qual è la differenza tra JAR e WAR?
I file JAR hanno l'estensione.jar, mentre i file WAR hanno l'estensione.war. Ma un file WAR è un tipo specifico di file JAR. I file JAR contengono file di classe, librerie, risorse e file di proprietà. I file WAR contengono servlet, pagine JSP, pagine HTML, codifica JavaScript. I file JAR vengono utilizzati per archiviare un'intera applicazione Java (desktop), mentre i file WAR vengono utilizzati per distribuire applicazioni Web.