krigsfilenhed

Ledig

krigsfilstruktur

Hver webapplikation, når den uploades til webserveren, er pakket ind i en enkelt .war-fil. WAR står nu for Web Application Resources, selvom det plejede at være Web ARchive. Faktisk er dette et zip-arkiv, der indeholder en pakket webapplikation.

Sådan ser det typiske indhold af en krigsfil ud:

/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

Inde i krigsfilen er statiske webressourcer såsom .html, .css, .js-filer og så videre. Der kan også være billeder, videoer og generelt alle filer. De kan være i roden eller i undermapper, det er lige meget. Tomcat vil simpelthen servere dem, hvis de bliver bedt om.

Lad os sige, at din webapplikation er indlæst på webserveren under navnet apple, så når http://localhost/apple/images/logo.png anmodes om , returnerer Tomcat filen /images/logo.png .

Separat er det værd at bemærke WEB-INF-mappen . Det er designet til at gemme Java-kode i det. Tomcat vil ikke udlevere indholdet.

/WEB-INF/klasser/ mappe til kompilerede ikke-JAR Java-klasser, inklusive servlet-klasser og ressourcefiler, der er nødvendige af indlæseren, før applikationen køres
/WEB-INF/lib/ sted at opbevare krukkebiblioteker
/WEB-INF/web.xml implementeringsbeskrivelse

krigsfilstruktur og maven-projekt

Lad os nu gå videre til mappehierarkiet i Maven-projektet. Du kan se hele kataloglayoutet i den officielle manual. Her vil vi stifte bekendtskab med det i en noget forkortet version, eksklusive testressourcer. Så standard Maven-kataloghierarkiet ser sådan ud:

src/main/java kildekoder for applikationsklasser og biblioteker i overensstemmelse med det generelt accepterede pakkehierarki
src/main/ressourcer applikationsressourcefiler: databaseindstillinger, lokaliseringsfiler osv.
src/main/webapp webapplikationsressourcer (JSP-filer, tekstfiler, scripts osv.)

Som du kan se, adskiller den sig væsentligt fra strukturen af ​​WAR-filen, som du kender. Men det, der rent faktisk sker, når man kompilerer en webapplikation, er simpelthen at flytte og sammenkæde filer til den struktur, der er defineret i Java EE-specifikationen.

Mappen src/main/webapp definerer kontekstroden af ​​webapplikationen (når den er installeret på en server, er kontekstroden den samme som navnet på WAR-filen) og indeholder allerede WEB-INF-mappen i den. Det vil sige, at indholdet af src/main/webapp overføres fuldstændigt til webapplikationen.

Alle dine Java-klasser kompileres til klassefiler og flyttes til mappen /WEB-INF/classes/ , ved at bevare deres pakkestruktur . JAR'erne for de inkluderede biblioteker, som er defineret i Maven pom.xml-afhængighederne, som vi definerede ovenfor, flyttes til mappen /WEB-INF/lib/ .

Applikationsressourcer src/main/resources flyttes til applikationens klassesti, specifikt til den samme /WEB-INF/classes/ -mappe .

For at gøre det helt klart, se på dette diagram, som vil hjælpe dig med at forstå, hvordan og hvad der går hvor, når du bygger et projekt:

krigsfilenhed
Kommentarer
  • Populær
  • Ny
  • Gammel
Du skal være logget ind for at skrive en kommentar
Denne side har ingen kommentarer endnu