.Net çi olarak Java öğrenmeye yeni başladım, temelleri ve özelliklerini iyi biliyorum. Ama Java teknolojisinde oldukça fazla kavram var ve neresinden tutup başlayacağımı bilemiyorum kafamda netleştiremiyorum. JSP ile ufak basit bir proje yapmak istiyorum ama bir de JSF var? JSF'in açılımı ve açılımından çıkardığım yorum kadar bir bilgim var.

JSP ve JSF Arasında ki fark nedir? Hangisine yoğunlaşmam beni ileriye taşır?

soruldu: 09 Mar '12, 04:30

BrkSe's gravatar image

BrkSe
2792512
cevap kabul oranı: 0%

değiştirildi: 15 Mar '12, 11:49

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Java ile web uygulamaları yapmanın pekçok yöntemi vardır.

Önceleri bu uygulamalar Servlet'ler ile başladı.

Servlet, Java ile web uygulamalarında bulunan request ve response nesnelerinin hayat döngüsünde baştan sona yani request'ten response'a varıncaya kadar işlemler yapmayı sağlar ve bir yazılım metodolojisine tabi tutar.

Fakat Servlet'ler tıpkı Perl gibi kodun içine html yazmayı gerektirdiğinden tutmadı.

Java dünyası da o sıralar yeni yeni gelişmeye başlayan bir yöntemi yani html arasına Java kodu gömmeyi başardı adında da Java Server Pages dedi.

JSP'ler aslında dinamik olarak Servlet'lere dönen bir derleme işleminden geçer ve sonuçta çalışan Servlet'tir.

JSP halen Java web uygulamalarında kullanılmaktadır ama zorunlu değildir.

Bazı Java web teknolojilerinde JSP olmadan sadece Java kodu ile web uygulamaları yapılabilir. Wicket, GWT bunlara örnek olabilir.

Yalnız bu teknolojilerde kodun içine html yazılmamaktadır. Bazı şablon sistemleri ve bileşenler kullanılarak çok daha kısa zamanda html form objeleri gibi pekçok talep gösterilebilmektedir.

Gelişen ve durmaksızın büyüyen web uygulamalarında JSP, artık sadece gösterim (view) katında kalmıştır.

Örneğin JSP içinden veritabanına erişilmez. Bu çağdaş yazılım anlayışlarına aykırıdır. Çünkü veritabanına erişmek için kullanılacak sınıfa sadece JSP ihtiyaç duymayacak, belki bir Swing uygulaması da bu sınıf ile veritabanına bağlanacaktır.

Özetle şu anda JSP sayfalar web uygulamalarının gösterim katındadır. Mesela tasarımlar, temalar, layout'lar JSP'ler için yapılabilir.

JSP sayfalarda aranan özellik aynı işi yapan benzer ekran görüntülerinin tag haline getirilerek mümkün olduğu kadar kısa tutulması ve tasarımcılara kolaylık sağlanmasıdır.

Bunun yanında çeşitli şablon sistemleri kullanılarak aynı işleri yapan JSP sayfalarının include edilmesi gibi şalon sistemi tarafından çalıştırılması sağlanır.

Struts Tiles, Apache Velocity, Sitemesh gibi şablon sistemleri bunlara örnek olabilir.

JSF (Java Server Faces) ise, bir MVC (Model View Controller) standardıdır.

MVC sistemleri Java dünyasında Apache Struts ile başlamıştır diyebiliriz.

MVC ile amaç, yazılımı objeler, görünümler ve kontrol sınıfları şeklinde mantıksal olarak bölmektir.

İki çeşit MVC vardır. Biri request tabanlı biri de event (olay) tabanlı.

Struts, request tabanlı bir MVC'dir. Request hangi sınıfa gelmişse o sınıfın çağrıya yanıt vermesini, yanıt verdikten sonra nereye yönlenmesi gerektiğini Struts belirler.

JSF ise olay tabanlı bir MVC'dir. Site üzerinde butona tıklamak gibi gerçekleşen olaylar sınıflar tarafından dinlenir ve yanıt verilir.

JSF bir sayfada gösterilecek verileri göstermek için JSP kullanabilir. Ama başka bir teknoloji de kullanabilir.

Kaynak:
https://forum.ceviz.net/java-jsp-jsf-28/jsf-mi-jsp-mi-farklariartilarieksileri-81766/

JSP yi en azından temel düzeyde bilin ama üzerinde fazla oyalanmayın, bence JSF ye ağırlık verin.

Birkaç gözatabileceğiniz kaynak paylaşayım:
http://www.youtube.com/playlist?list=PLB59C6BBACE1001BB&feature=plcp (JSP)
http://www.cizgi-tagem.org/e-kampus/education.aspx?id=46 (JSP)
http://www.youtube.com/playlist?list=PLB59C6BBACE1001BB&feature=plcp (JSP)
http://vimeo.com/38128278 (JSF)

İngilizceniz yeterliyse kendi kaynağı da gayet güzel:
http://docs.oracle.com/javaee/5/tutorial/doc/index.html
http://docs.oracle.com/javaee/6/tutorial/doc/

Kitap olarak da Mimar Aslan'ın JSP kitabını ve Tevfik KızılÖren'in Java ve Java Teknolojileri(Java Se, JSF) kitabını tavsiye ederim.

permanent link

cevaplandı: 09 Mar '12, 18:15

rahmanyazgan's gravatar image

rahmanyazgan ♦
4.4k83559
cevap kabul oranı: 26%

değiştirildi: 28 Şub '15, 19:05

Java da web programlama icin izlenecek yol basit haliyle soyle olmali:

Java Servlet: Web teknolojilerinin temelinde bulunur. JSP ve JSF hala servlet'i kullanir.

Java Server Pages : Proje view'leri html icine yazilan java tag ve kodlariyla olusturulur.

Java Server Faces : Proje view leri jsf component'leri ile olusturulur.(Bakiniz primefaces, richfaces vb.) JSF daha cok component modele uygundur. Ornegin bir DataTable kullanacaksaniz bunu richfaces veya primefaces gibi jsf componentleriyle hazir kullanabilirken, JSP de nunu html(html, javascript, jquery, css) ile yazarsiniz.

Eger java da web projeleri yeni yazmaya basliyorsaniz JSF tercih edilmeli, cunku Java view teknolojisi olarak JSF ye yatirim yapiyor ve yenilikler cogunlukla JSF de yapiliyor. JSF component bazli calistigi icin JSP ye gore daha yavas calisir. JSF ogrenmek icin JSP ogrenmek zorunda degilsiniz fakat Servlet mantigini ogrenmeniz cok iyi olacaktir.

Netbeans.org da baslangic duzeyi icin ornekler var:

Introduction to JavaServer Faces 2.0

JSF CRUD Web Application with Java Persistence API

Generating a JavaServer Faces 2.0 CRUD Application from a Database

The NetBeans E-commerce Tutorial (JSP) - Introduction

Kolay gelsin.

permanent link

cevaplandı: 11 Mar '12, 07:49

CemIkta's gravatar image

CemIkta ♦
19.9k29125190
cevap kabul oranı: 36%

değiştirildi: 11 Mar '12, 07:51

JSP: JSP (Java Server Pages), Java Servlet teknolojisinin bir uzantısıdır. HTML ve sunucu taraflı Java progamlarının birlikte çalışmasını sağlar. JSP sayfaları .jsp uzantısı taşır. JSF: JSF bir web Frameworktür.

permanent link

cevaplandı: 09 Mar '12, 11:07

faridmovsumov's gravatar image

faridmovsumov
1.1k193738
cevap kabul oranı: 16%

aslında her ikiside web tabanlı uygulama geliştirmek için kullanılabiliecek araclardırı jsp daha onceki bir teknolojidir jsf ile yapılar bir cok iş orada daha zahmetlidir ayrıca jsp de katmanlı mimari yoktur bir sayfada (asp deki gibi) html, java, jstl, kalıcılık katmanı kodları karısık yazılır derleme esnasında bu kodlar bi servlete dönüştürülür ve server da değişiklik olmadığı sürece o servlet kullanılır.jsp de on yüz için bir bileşen kütüphansei geliştirilmemiştir fakat jsf in kendi bileşenleri wardır 3 katmanlı olması cok büyük avantajlat sağlar ayrıca biraz asp.net biliyorum o yüzden kıyaslayacak olursak jsf arka plan da calişması (yasam döngüsü olayı) mimarisini cok iyi kurgulamıslar hem iyi tarafı siz yasam döngüsün bir cok asamasında farklı davranıslar sergilete biliyrsunuz.tam bir web framework ü .net tarafında ise masaüstü programcılığı mantığı war. ayrıca jsf in görünüm katmanında jsp uzantılı sayfalar kullanılır(alternatifleri var) ama aslında içerik olarak eski jsp ye benzemiyor.

permanent link

cevaplandı: 09 Mar '12, 19:30

trueLife's gravatar image

trueLife
699182430
cevap kabul oranı: 10%

Konudan fazla ayrılamdan bir şey daha eklemek istiyorum. PrimeFaces'i JSP sayfama entegre etmem mümkün müdür? Yoksa JSF de mi kodlamam gerekiyor?

(14 Mar '12, 16:31) BrkSe BrkSe's gravatar image
1

PrimeFaces 2.x ve üzeri sürümlerini JSP ile kullanamazsınız fakat JSF Facelet (html / xhtml) ile kullanabilirsiniz.

PrimeFaces 2.x: http://pastebin.com/78AvQZF2

PrimeFaces 3.x: http://pastebin.com/WMCwBY54

(26 Mar '12, 17:11) rahmanyazgan ♦ rahmanyazgan's gravatar image
Cevabınız
toggle preview

powered by BitNami OSQA