CodeGym /Cursos /All lectures for PT purposes /dispositivo de arquivo de guerra

dispositivo de arquivo de guerra

All lectures for PT purposes
Nível 1, Lição 376
Disponível

estrutura de arquivo de guerra

Cada aplicativo da web, quando carregado no servidor da web, é compactado em um único arquivo .war. WAR agora significa Web Application Resources, embora costumava ser Web ARchive. Na verdade, este é um arquivo zip que contém um aplicativo da Web empacotado.

Veja como é o conteúdo típico de um arquivo war:

/index.html /guestbook.jsp /images/logo.png /js/jquery.js
/WEB-INF/web.xml
/WEB-INF/classes/com/codegym/Util.class /WEB-INF/classes/com/codegym/MainServlet.class /WEB-INF/classes/application.properties /WEB-INF/lib/util.jar
/META-INF/MANIFEST.MF

Dentro do arquivo war estão recursos estáticos da web , como arquivos .html, .css, .js e assim por diante. Também pode haver fotos, vídeos e, em geral, quaisquer arquivos. Eles podem estar na raiz ou em subpastas, não importa. O Tomcat simplesmente os servirá se forem solicitados.

Digamos que seu aplicativo da web seja carregado no servidor da web com o nome apple e, quando http://localhost/apple/images/logo.png for solicitado , o Tomcat retornará o arquivo /images/logo.png .

Separadamente, vale destacar a pasta WEB-INF . Ele é projetado para armazenar código Java nele. O Tomcat não distribuirá seu conteúdo.

/WEB-INF/aulas/ diretório para classes Java não JAR compiladas, incluindo classes de servlet e arquivos de recursos necessários para o carregador antes de executar o aplicativo
/WEB-INF/lib/ lugar para armazenar bibliotecas jar
/WEB-INF/web.xml descritor de implantação

estrutura de arquivos war e projeto maven

Agora vamos passar para a hierarquia de diretórios do projeto Maven. Você pode ver o layout completo do catálogo no manual oficial. Aqui vamos conhecê-lo em uma versão um tanto abreviada, excluindo os recursos de teste. Portanto, a hierarquia de diretórios padrão do Maven se parece com isso:

src/principal/java códigos-fonte de classes e bibliotecas de aplicativos de acordo com a hierarquia de pacotes geralmente aceita
origem/principal/recursos arquivos de recursos de aplicativos: configurações de banco de dados, arquivos de localização, etc.
src/main/webapp recursos de aplicativos da web (arquivos JSP, arquivos de texto, scripts, etc.)

Como você pode ver, ele difere significativamente da estrutura do arquivo WAR que você conhece. Mas o que realmente acontece ao compilar um aplicativo da web é simplesmente mover e concatenar arquivos na estrutura definida na especificação Java EE.

O diretório src/main/webapp define a raiz de contexto do aplicativo da web (quando implantado em um servidor, a raiz de contexto é igual ao nome do arquivo WAR) e já contém o diretório WEB-INF dentro dele. Ou seja, o conteúdo de src/main/webapp é totalmente transferido para a aplicação web.

Todas as suas classes Java são compiladas em arquivos de classe e, mantendo sua estrutura de pacote, são movidas para o diretório /WEB-INF/classes/ . Os JARs das bibliotecas incluídas, que são definidas nas dependências pom.xml do Maven conforme definimos acima, são movidos para o diretório /WEB-INF/lib/ .

Os recursos do aplicativo src/main/resources são movidos para o classpath do aplicativo, especificamente para o mesmo diretório /WEB-INF/classes/ .

Para deixar tudo bem claro, observe este diagrama, que ajudará você a entender como e o que vai para onde ao construir um projeto:

dispositivo de arquivo de guerra
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION