структура на военен файл

Всяко уеб приложение, когато се качи на уеб сървъра, се пакетира в един .war файл. WAR сега означава Web Application Resources, въпреки че преди беше Web ARchive. Всъщност това е zip архив, който съдържа пакетирано уеб приложение.

Ето How изглежда типичното съдържание на военен файл:

/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

Във военния файл има статични уеб ресурси като .html, .css, .js файлове и т.н. Също така може да има снимки, видеоклипове и като цяло всяHowви файлове. Те могат да бъдат в корена or в подпапки, няма meaning. Tomcat просто ще ги сервира, ако бъдат поискани.

Да приемем, че вашето уеб приложение е заредено на уеб сървъра под името apple, тогава, когато се поиска http://localhost/apple/images/logo.png , Tomcat ще върне file /images/logo.png .

Отделно, заслужава да се отбележи папката WEB-INF . Той е предназначен да съхранява Java code в него. Tomcat няма да разкрие съдържанието си.

/WEB-INF/класове/ директория за компorрани не-JAR Java класове, включително сървлет класове и файлове с ресурси, необходими на зареждащия инструмент преди стартиране на приложението
/WEB-INF/lib/ място за съхраняване на библиотеки от буркани
/WEB-INF/web.xml дескриптор на разгръщане

структура на военни файлове и проект maven

Сега нека да преминем към йерархията на директориите на проекта Maven. Можете да видите пълното оформление на каталога в официалното ръководство. Тук ще се запознаем с него в малко съкратен вариант, с изключение на тестовите ресурси. И така, стандартната йерархия на директорията на Maven изглежда така:

src/основен/java изходни codeове на класове applications и библиотеки в съответствие с общоприетата йерархия на пакетите
src/основни/ресурси файлове с ресурси на приложението: настройки на база данни, файлове за локализация и др.
src/main/webapp ресурси за уеб applications (JSP файлове, текстови файлове, скриптове и др.)

Както можете да видите, тя се различава значително от структурата на file WAR, който познавате. Но това, което всъщност се случва при компorране на уеб приложение, е просто преместване и свързване на файлове в структурата, дефинирана в спецификацията на Java EE.

Директорията src/main/webapp дефинира контекстния корен на уеб приложението (когато е разположен на сървър, контекстният корен е същият като името на WAR file) и вече съдържа директорията WEB-INF в него. Това означава, че съдържанието на src/main/webapp се прехвърля изцяло в уеб приложението.

Всички ваши Java класове се компorрат във файлове на класове и, запазвайки структурата на пакета си, се преместват в директорията /WEB-INF/classes/ . JAR файловете на включените библиотеки, които са дефинирани в зависимостите на Maven pom.xml, Howто дефинирахме по-горе, се преместват в директорията /WEB-INF/lib/ .

Ресурсите на приложението src/main/resources се преместват в класовата пътека на приложението, по-специално в същата /WEB-INF/classes/ директория .

За да стане напълно ясно, погледнете тази диаграма, която ще ви помогне да разберете How и Howво къде отива при изграждането на проект:

военно файлово устройство