istraktura ng file ng digmaan

Ang bawat web application, kapag na-upload sa web server, ay naka-package sa isang solong .war file. Ang WAR ngayon ay kumakatawan sa Web Application Resources, bagama't dati itong Web ARchive. Sa katunayan, ito ay isang zip archive na naglalaman ng naka-package na web application.

Narito ang hitsura ng karaniwang nilalaman ng isang file ng digmaan:

/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

Sa loob ng war file ay mga static na mapagkukunan ng web tulad ng .html, .css, .js file, at iba pa. Gayundin maaaring mayroong mga larawan, video at sa pangkalahatan anumang mga file. Maaari silang nasa ugat o sa mga subfolder, hindi mahalaga. Ihahatid lang sila ng Tomcat kung hihilingin sila.

Sabihin nating na-load ang iyong web application sa web server sa ilalim ng pangalang apple, pagkatapos ay kapag hiniling ang http://localhost/apple/images/logo.png , ibabalik ng Tomcat ang file /images/logo.png .

Hiwalay, ito ay nagkakahalaga ng pagpuna sa WEB-INF folder . Ito ay dinisenyo upang mag-imbak ng Java code sa loob nito. Tomcat ay hindi magbibigay ng mga nilalaman nito.

/WEB-INF/classes/ direktoryo para sa pinagsama-samang mga hindi JAR Java na klase, kabilang ang mga servlet class at resource file na kailangan ng loader bago patakbuhin ang application
/WEB-INF/lib/ lugar upang mag-imbak ng mga aklatan ng garapon
/WEB-INF/web.xml descriptor ng deployment

istraktura ng file ng digmaan at proyekto ng maven

Ngayon ay lumipat tayo sa hierarchy ng direktoryo ng proyekto ng Maven. Maaari mong makita ang buong layout ng catalog sa opisyal na manwal. Dito ay makikilala natin ito sa isang medyo pinaikling bersyon, hindi kasama ang mga mapagkukunan ng pagsubok. Kaya, ang karaniwang hierarchy ng direktoryo ng Maven ay ganito:

src/main/java source code ng mga klase ng application at library alinsunod sa pangkalahatang tinatanggap na hierarchy ng package
src/main/resources mga file ng mapagkukunan ng application: mga setting ng database, mga file ng lokalisasyon, atbp.
src/main/webapp mga mapagkukunan ng web application (JSP file, text file, script, atbp.)

Gaya ng nakikita mo, malaki ang pagkakaiba nito sa istraktura ng WAR file na alam mo. Ngunit ang aktwal na nangyayari kapag ang pag-compile ng isang web application ay simpleng paglipat at pagsasama-sama ng mga file sa istraktura na tinukoy sa detalye ng Java EE.

Tinutukoy ng src/main/webapp na direktoryo ang context root ng web application (kapag na-deploy sa isang server, ang context root ay kapareho ng pangalan ng WAR file) at naglalaman na ng WEB-INF na direktoryo sa loob nito. Iyon ay, ang mga nilalaman ng src/main/webapp ay ganap na inilipat sa web application.

Ang lahat ng iyong mga klase sa Java ay pinagsama-sama sa mga file ng klase at, pinapanatili ang kanilang istraktura ng pakete, ay inilipat sa /WEB-INF/classes/ direktoryo . Ang mga JAR ng mga kasamang aklatan, na tinukoy sa Maven pom.xml dependencies gaya ng tinukoy namin sa itaas, ay inilipat sa /WEB-INF/lib/ directory .

Ang mga mapagkukunan ng aplikasyon src/main/resources ay inilipat sa classpath ng application, partikular sa parehong /WEB-INF/classes/ directory .

Upang maging ganap itong malinaw, tingnan ang diagram na ito, na tutulong sa iyo na maunawaan kung paano at kung saan pupunta kapag gumagawa ng proyekto:

war file device