Java Web Frameworkleri
Bu yazımızda java web frameworkü nedir, çeşitleri nelerdir, bunlardan bahsedeceğim.
Web Uygulamaları:
Web uygulamaları sunucular üzerinden çalışıp, kullanıcılardan aldığı verileri işleyerek, depolayan ve kullanıcıya gerekli sonuçları döndüren yapılardır. Web uygulamaları genelde kullanıcılar ile görsel materyeller ile iletişim kurarlar.
Biz yazımızda java web frameworklerinden bahsedeceğimiz için, java web uygulamaları hakkında konuşalım. Java şu anda web uygulamalarında gerçekten başarılı ve güçlüdür. Çünkü ortam bağımsızlığı bunun en büyük etkenidir. Sunuculara jvm kurulması ile java için bütün altyapı sağlanmış olur. Bunun dışında yapılması gereken birşey yoktur.
Java web uygulamaları direk olarak geliştirilmez, genellikle bir frameworkten yararlanılır.
Frameworkler, daha önceki yazılarımızda da bahsettiğimiz gibi 3 yapıdan oluşur. Bunlar model, view, controller yapılarıdır. Bu yapılar sayesinde programlamada katmanlı bir yapı kullanılır. Bu üç kelimenin baş harflerinden oluşan mvc bu yapılar için kullanılır.
- Model = Database ile uygulama arasında ki bağlantıyı sağlayan bölümdür. Bu bölüm bütün verinin tutulduğu kısımdır.
- View = Türkçedeki karşılığı ile görünümdür. Yani verilerin kullanıcıya sunulduğu bölümdür. Kullanıcıların uygulamaları açtığında(web sitesi veya masaüstü uygulaması farketmez.) karşılaştıkları sunum bölümüdür. Bunlar formlar butonlar vs dir.
- Controller = Model den gelen verileri işleyerek View kısmına yollar, verilerin işlenmesini sağlayan bölümdür. Yani model ile view arasındaki bağlantıyı sağlar.
Peki bu yapılara java teknolojilerinde birer örnek verelim.
- Model: java bean
- View : JSP
- Controller: Servlet
Frameworklerin listesine bu adresten ulaşabilirsiniz. Başlıcaları ise JSF, Seam, Spring, Struts, JSP, Servlet …
JSP (JavaServer Pages)
JSP, bir java sunucusu üzerinde çalışan HTML, CSS, Javascript çıktısı üretebilen, Java gösterim teknolojisi olarak tanımlanabilir. Jsp sayfaları aslında html dosyaları için script olarak yazılmış Java kodlarıdır. JSP içinde doğrudan java kodu yazmak yerine, kodların JSP içine dahil edilmesi tavsiyedir. Yani JSP içine veritabanı bağlantıları için java kodu yazmak yerine, bu kodları bir java class’ı içine yazıp, JSP içinden bu class’ın çağırılması tavsiye edilir.
JSP tek kullanımında mvc yapısını desteklemez. Başka uygulamalarda view olarak jsp kullanılır. Genelde JSF uygulamalarının view kısmı JSP dir.
Bir JSP kodu sunucudan ilk defa çağırıldığında veya web sunucu ilk defa başlatıldığında, JSP kodu HttpServlet sınıfından türetilerek bir class olarak oluşturulur ve sunucunun yaşan süresi boyunca çalışmaya devam eder.
Servlet
Servlet, Java application programming interface (API), sunucu üzerinde çalışan, dinamik içerik üreten bir web bileşenidir. Aslında sunucu tarafından çağrılan derlenmiş java nesneleridir. HttpServlet, servlet’e örnek olarak verilebilir. Servletler, Java’nin, CGI (Common Gateway Interface) programlamasına alternatifi olarak oluşturulmuşlardır. Web sunucusu ile diğer ortakat uygulamaları ve veri tabanı arasında yer alırlar.
HTTP ile gelen requestler uygulama sunucusu üzerinde çalışan Servlet Engine tarafından incelenir. Bu incelemenin sonucu ilgili servleti çağırır. Çalışan servletlerin sonuçları yine servlet engine tarafından değerlendirilir ve HTTP protokol response dönüştürülür.
Örnekle açıklayacak olursak, bir Servlet ilk defa çağırıldığında veya Tomcat gibi web sunucu ilk defa çalıştırıldığında, Servlet’in bir örneği (instance) oluşturulur ve sunucunun yaşam süresi boyunca hazırda bekler. Eğer o servlet için bir istek olursa, yanıt verir. Servlet’lere istekler HttpServletRequest arayüzünden gelir, servlet’in cevabı ise HttpServletResponse arayüzünden döndürülür.
Bu sayede uzaktaki bir java nesnesini HTTP aracılığı ile çağırabiliyoruz.
JSF (JavaServer Faces)
JSF ise Servlet ve JSP’den biraz daha farklı olarak, arka planda Servlet ve ön yüzde JSP etiketlerini kullanabilen, bileşen temelli bir MVC çatısıdır. Arka plan kodunu, tasarımı ve gösterimi ayrı ayrı yapabilmek için geliştirilmiş bir frameworkdur. Kendi içinde hazır kütüphaneleri vardır ve siz ilgili kütüphaneleri ekleyip, SJF’ye uygun etiketler ile geliştirmenizi yaparsınız. JSF gibi çatıları kullanmanın avantajı, ihtiyaç duyabileceğiniz bazı bileşenlerin daha önceden hazır paketler halinde sunulmasıdır. Örneğin geliştirdiğiniz uygulamada veri doğrulaması yapmak istiyorsanız, bunun için JSF içindeki hazır yapıyı kullanabilirsiniz. JSF, temel olarkak FacesServlet sınıfını kullanır.
JSF Ajax desteği de sağlar. Bu sayede popüler bir web uygulama çatısıdır.
Spring
Bu framework hem kurumsal hem standart uygulamalarda tercih edilir. Java nın güçlü taraflarından olan EJB yapısına alternatif olarak spring ORM, Annotation, Dependency Injection gibi özellikler sunar.
En önemli avantajlarından birisi de hızlı test edilebilmesidir. Netbeans de Spring desteği vardır.
Web uygulamaları geliştirilirken kullanılan terimlerden bilinmesi gereken bir kaçından bahsedelim. Bunlar POJO ve JavaBean dir.
Pojo: Düz java nesneleridir. Basit java nesnelerini tanımlar. Pojo nun sahip olması gereken bazı özellikler vardır.
- Sadece üye değişkenler ve bunlara ait olan set get metotları bulunabilir.
- Bu sınıflar herhangi bir sınıfı extend edemezler.
- Bu sınıflar herhangi bir arayüzü implement edemezler.
- Bu sınıflar annotation içeremezler
Bu sınıflar herhanbi bir arayüze ve dipnota ihtiyaç duymadıkları için başka framework lerde kullanılabilir.
JavaBean: JavaBean aslında Pojo nun daha özelleşmiş halidir. Özellikleri ise
- Mutlaka constructor içermelidir.
- Bu sınıflar mutlaka Serializable arayüzünü implement etmelidirler
- Ayrıca üye değişkenlere getter ve setter ile ulaşmalıdırlar.
Bu yazımızda java framework ve bazı teknik detaylardan bahsettik. Daha sonraki yazılarımızda Spring ve JSF üzerinde örneklere yer vereceğiz.
Bunlara da Göz Atmak İsteyebilirsiniz.
<<< Önceki: KodMerkezi.Net Soru Cevap Bölümü Açıldı!
Sonraki: PLSQL – Javascript Compiler (Antlr v3 – Eclipse) >>>
Yorum Bırakın!