12 Mart 2015 Perşembe

Java EE Web Application file structure / dosya yapısı

MyProject adında Netbeans 8 ve Apache Tomcat 7 ile hazırlanmış, jsp ve servlet kullanılan bir web application projesini ele alalım.
Proje dosyalarının organizasyonunu inceleyelim.

Proje root klasörü olan MyProject klasörü içinde şunlar bulunuyor:

1.build klasörü

generated\src\org\apache\jsp\ klasörüne bakalım.

index_jsp.class.smap : jsp ile servlete dönüştürülmüş hali olan java dosyasını mapliyor.
index_jsp.java: index.jsp dosyasının servlet'e dönüştürülmüş halini görebiliyoruz.

generated\classes\org\apache\jsp\ klasörüne bakalım.

index_jsp.class : burada index.jsp dosyasının servlet hali olan java classının compile edilmiş, yani bytecode haline dönüştürülmüş halini görebiliyoruz.

cafe babe ifadesi ile başlayan bytecode'dan pek birşey anlaşılmıyor elbette. Ama neyin ne olduğunu anlamak açısından bu şekilde tüm dosyaları ve klasörleri incelemek faydalı olacaktır.

2.dist klasörü

MyProject.war : burada projenin build edilmesiyle oluşan war paketini görüyoruz.
Bu war dosyasını kopyalarak istediğimiz servera projeyi deploy edebiliriz.

3.nbproject klasörü

Bu klasörde Netbeans'in proje konfigürasyon dosyaları bulunuyor.

private klasörü: private.xml ve private.properties dosyaları bulunuyor.
Bu klasördeki diğer konfigürsayon dosyaları:
ant-deploy.xml
build-impl
genfiles.properties
project.properties
project.xml

4.src klasörü

conf klasörü: burada manifest.mf dosyası bulunuyor. Dosyada sadece versiyon bilgisi mevcut:
"Manifest-Version: 1.0" şeklinde.

java klasörü: java kaynak kodları işte burada yer alıyor.
com\example\servlets klasörü içinde IndexServlet.java vb. projede kullanılan bütün servlet dosyaları burada.

Netbeans'te Source Packages adı altında gösteriliyor.

5.web klasörü 

Netbeans'de Web Pages adı altında gösteriliyor.
Bu klasörde projede kullanılan bütün jsp ve html dosyaları yer alıyor.

WEB-INF klasörü: Burada web.xml dosyası bulunuyor.
Buradaki dosyalara client erişemez. Sadece uygulama içinden ulaşılabilir.
Burada bulunan bir dosyayı başka yerde kullanmak istiyorsak @include ederiz.
Burası client'a görünmez olduğundan client web.xml'i değiştiremez.

META-INF klasörü: Burada context.xml dosyası bulunuyor.
Dosya içeriği şöyle:
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/MyProject"/>

6.build dosyası 

Burada projenin compile ya da build etmeden önce veya sonra yapılabilecek işlemleri nasıl tanımlayacağımızdan bahsediliyor.

Default olarak içeriği şöyle:
<?xml version="1.0" encoding="UTF-8"?>
<project name="MyProject" default="default" basedir=".">
    <description>Builds, tests, and runs the project MyProject.</description>
    <import file="nbproject/build-impl.xml"/>
</project>

Hiç yorum yok:

Yorum Gönder