Anasayfa » Frameworkler, Java ve Java Teknolojileri

Java Web Frameworkleri

3 Haziran 2012 10.854 kez okundu Yorum yok
1 Star2 Stars3 Stars4 Stars5 Stars (2 oy,5 üzerinden : 5,00 )
Loading...

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.

<<< Önceki:

Sonraki: >>>


Facebookta Paylaş

Yorum Bırakın!

Yorum yaz, yada kendi sitende trackback (Geri besleme) olarak ekle. Ayrıca RSS ile bu konuya üye olabilirsin. .

Nazik olun. Temiz tutun. Konu dışına çıkmayın. Spam yaratmayın.

Bu tagları kullanabilirsiniz:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Bloğumuz gavatarı desteklemektedir. Kendi gavatarınızı edinmek için lütfen Gravatar a üye olun.