структура на военен файл
Всяко уеб приложение, когато се качи на уеб сървъра, се пакетира в един .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во къде отива при изграждането на проект:
GO TO FULL VERSION