"Doğru yol nedir?" veya "bu doğru yol mu?" ... bağlıdır .
Yapabileceğim tek şey size belirli fikirlere artılarını ve eksilerini anlatmak. Takip eden şey% 100. Herhangi bir özel gereksinim veya kural bilmiyorum. Eminim birisi bana katılmayacaktır.
JSP en
JSP'leri WEB-INF'ye yerleştirip yerleştirmemeye çalışalım.
JSP'leri WEB-INF'ye koymanın artıları:
- JSP'lerin nasıl yürütüldüğünü siz denetlersiniz. Bir JSP'nin parametrelenmesini ve yeniden kullanılabilir olmasını istiyorsanız (yine de bir JSP ile gerçekten zor), bunları WEB-INF'ye yerleştirebilir ve ön işleme yapmak için bir sunucu uygulaması veya Struts eylem denetleyicisi veya başka bir ön denetleyici kullanabilirsiniz. ve ardından denetimi doğru ortam bağlamında geçirerek JSP'ye iletin (istek öznitelikleri, güvenlik denetimleri, parametre sanitasyonu vb. gibi)
- Bir güvenlik duvarı veya IDS düzeyinde, bir kullanıcının web köküne JSP yükleme ve ardından web sunucusu olarak kod yürütme olasılığını azaltmak için HTTP isteklerini * .jsp'ye engelleyebilirsiniz. Mevcut bir JSP'yi aşırı yazmak zorunda kalacaklardı. Büyük bir güvenlik kazancı değil, ama uzlaşmayı biraz daha zorlaştırıyor.
- MVC, ön kontrolör, sunucu uygulaması filtreleri, bağımlılık enjeksiyonu vb. Gibi iyi alışkanlıkları, tüm işi yapan ve okunması / bakımı zor olan büyük bir canavar JSP'nin aksine uygular.
JSP'leri WEB-INF'ye koymanın eksileri:
- Açık işlem gerektirmeyen basit bir bağımsız sayfa olsa bile sayfaya doğrudan erişemezsiniz. Bunun nedeni, / WEB-INF altındaki dosyalara sunucu uygulaması kapsayıcısı tarafından erişilememesidir.
Statik dosyalar
HTML, resim, stil sayfası, javascript vb.Gibi tamamen statik dosyalar açısından bunları web kökünün altına koyun (sizin durumunuzda my_app), ancak NOT / WEB-INF (erişilebilir olmadığı için).
Genel düzen
Genel dizin düzenine gelince, bu biraz oluşturma işleminize bağlıdır. Ben her şeyi "src" veya "kaynak" altında saklamak gibi çünkü bina tarafından hangi dosyaları oluşturulan ve hangi saf kaynak dosyaları olduğunu netleştirir. main
junit sınıfları gibi test kodlarını ana kaynak kodunuzdan ayırmanıza izin verir, bu da iyidir. Ama eğer birim testleriniz yoksa (oh hayır!), O zaman anlamsız bir ayrımdır.
Öte yandan, oluşturma sırasında web kökünü hiç değiştirmezseniz (tüm JSP ve statik dosyalar gibi), belki de dosyaları en üst düzeyde tutarsınız ve dosyaları gerektiği gibi kopyalar /webroot
veya /deploy
kopyalarsınız. .class veya .jar dosyaları. İnsanların (özellikle geliştiricilerin) aşırı örgütlenme alışkanlığıdır. Aşırı düzenlemenin iyi bir işareti, yalnızca tek bir alt klasör içeren çok sayıda klasöre sahip olmaktır.
Gösterdikleriniz
Maven tarafından belirlenen bir kuralı izlediğinizi belirttiniz, bu yüzden zaten maven kullanıyorsanız, bu düzene sadık kalın. Açıkladığınız düzende kesinlikle yanlış bir şey yok.