java server faces

29
Java Server Faces Ahmet Demirelli Sabancı Üniversitesi 2007

Upload: ahmetdemirelli

Post on 26-Jun-2015

6.338 views

Category:

Technology


1 download

DESCRIPTION

Türkiye Bilişim Derneğinde verdiğim JSF Semner Slaytları

TRANSCRIPT

Page 1: Java Server Faces

Java Server Faces

Ahmet Demirelli

Sabancı Üniversitesi

2007

Page 2: Java Server Faces

Ajanda

�Model-1 Mimari

�Model-2 Mimari

�MVC Framework

�Java Server Faces

�Örnek Uygulama

Page 3: Java Server Faces

Model 1 Mimari

JSP(View)

JavaBeans(Model)

1 2 3

Client Server Database

456

� HTML form bilgisini JSP veya Servlet`e gönderir (1)� JSP den İş bileşenlerine bağlanır (2)� İş bileşenleri database işlemlerini yapar (3-4)� Yapılan işlem sonucu JSP ye bil gi döner (5)� JSP dönen sonucu clienta gönderir (6)

Page 4: Java Server Faces

Model 1 Dezavantajları

�Bakım zorluğu

�Hataların bulunma zorluğu

�Sayfa akış düzenini değiştirme zorluğu

�Modüler olmayan uygulamalar�Sisteme yeni modüller ekleme zorluğu

�Güncelleme problemi

Page 5: Java Server Faces

Model 2 Mimari (MVC)

Controller(Servlet)

JavaBeans(Model)

1

2

Client Server

Database

3

45

6JSP

(View)

2`

� HTML form bilgisini Controller Servlete gönderir (1)� Controller Servlet yapılması gereken işlemi belirler

� İşlem sadece yönlendirme işlemi ise başka bir jsp ye yenlendirir (2)� İşlem iş bileşenleri ile ilgili ise iş bileşenlerini çağırır (2`)

� İş bileşenleri database işlemlerini yapar (3-4)� Yapılan işlem sonucu JSP ye bilgi döner (5)� JSP dönen sonucu clienta gönderir (6)

Page 6: Java Server Faces

MVC – (Model)

�Model (İş bileşenleri katmanı)� Verilerin ve iş kurallarının işlendiği katmandır

� Bu katmanda yapılanlar;�Database sorgulamaları�İş kurallarının kontrolü

�Veri ve uygulama kuralları katmanını (business layer) sunum katmanından (presentation layer) ayırır

Page 7: Java Server Faces

MVC – (View)

�View (Sunum katmanı)� Client tiplerine göre sunumun düzenlenmesi

� İş katmanında işlenen verilerin gösterilmesi

Page 8: Java Server Faces

MVC – (Controller)

�Controller (Kontrol katmanı)�Uygulamaya gelen isteklerin nasıl işleneceğine ve sonucunun nasıl gösterileceği bilgisini tutar

�Kullanıcı isteklerine göre hangi iş bileşenlerinin çalışacağına karar verir

� İş bileşenlerinden gelen bilgilerin sunum katmanında hangi görüntü bileşenine yönlendirileceğineve nasıl görüntüleneceğine karar verir�Ör : Dil seçenekeleri veya rollere göre sayfaların görüntülenmesi

Page 9: Java Server Faces

Model 2 (MVC) Avantajları

�Hızlı uygulama geliştirme imkanı (RAD)

�Esnek ve moduler yapı

�Sayfa akış kontrolu merkezi olması

�Katmanların net olarak birbirinden ayrılması

Page 10: Java Server Faces

Model 2 (MVC)Dezavantajları

�Sağlam bir MVC uygulaması yazmak iyi bir tasarım ve kodlama gerektirir

�Her bir istek (request) için arka planı tasarlanmalıdır.(Controller, Model ve View bileşenleri tasarlanmalıdır)

� Fakat bunun için sıfırdan başlamamız gerekmiyor MVC Frameworkleri kullanabiliriz.

Page 11: Java Server Faces

Neden MVC Framework?

�Uygulamaları MVC mimarisinde geliştirmek için iyi bir planlama ve katman tasarımı gerekir

�MVC Uygulaması geliştirmek için kendi mimarinizi oluşturmak uygulama geliştirme zamanını uzatabilir

�MVC Uygulamaları geliştirmeye hızlı bir başlangıç yapmayı sağlar

�Katmanların oluştururulmasını kolaylaştırır�Uygulama geliştiricilere kullanabilecekleri ve genişletebilecekleri sınıflar sunarlar

�Girdi kontrolü kolaylaştırır�Uygulamaların internalizationunu kolaylaştırır

Page 12: Java Server Faces

Java Server Faces

�Web uygulamala arayüzleri geliştirmeyi kolaylaştıran java tabanlı Web Framework tanımlaması ve referans uygulamasıdır.

� JSF Açık kaynak kodlu standarttır: JSR 127�Java Community Process : www.jcp.org�JSF, Java EE teknolojisinin bir parçasıdır

Page 13: Java Server Faces

Java Server Faces

�Neden Kullanılmalı ?�Hazır MVC altyaspısını sağlar�Uygulama geliştiricilerin rollerini ayırır�Genişletilerbilir bir komponent altyapısı sunar�Standarttır ***�Endüstri desteği hergün artmaktadır�Hızlı uygulamalar geliştirmemizi sağlar (uygun geliştirme araçları ile sürükle-bırak yaparak geliştirme imkanı sunar)

� Java nın ASP.NET e cevabıdır

Page 14: Java Server Faces

Java Server Faces

� • JSF Framework içerisinde;� Java sınıfları

�“Faces” bileşenleri : HTML bileşenlerinin sunucu tarafındaki karşılıkları (text, buttons, checkboxes, etc.)

� FacesServlet (Controller)� Yardımcı sınıflar (Validator, Converter..etc)

�Tag kütüphaneleri� Hazır tag kütüphaneleri

�Konfigürasyon dosyası (faces-config.xml)�JSF projesi konfigürasyonu: sayfa geçişleri ve yönlendirmeleri, Uygulamada kullanılacak olan JavaBean (ManagedBean / BackingBean) tanımları

Page 15: Java Server Faces

Java Server Faces � JSF yaşam döngüsü;

� Request geldiğinde sayfadaki view ID ile bir

Page 16: Java Server Faces

Java Server Faces

�JSF Request yaşam döngüsü

�Komponent ağacının oluşturulması

�Request değerlerinin atanması

�Girdi kontrollerinin yapılması

�Model değerlerinin güncellenmesi

�Uygulamanın çağırılması

�Response un oluşturulması

Page 17: Java Server Faces

Java Server Faces

�JSF önyüz (page1.jsp)

<f:view>

<h:form>

<h:inputText id="name" value="#{student.name}" /> <br>

<h:inputText id="lname" value="#{student.age}" /><br>

<h:commandButton id=“click" value=“click“

action="#{student.saveData}" /><br>

</h:form>

</f:view>

Page 18: Java Server Faces

Java Server Faces

�ManagedBean / BackingBean

public class Student {

private String name;

private String age;

public Student() { }

public String getName() { return name;}

public void setName(String name) { this.name = name;}

public String getAge() { return age; }

public void setAge(String age) { this.age = age; }

public String saveData() {

//save data to database and return “success”

}

}

Page 19: Java Server Faces

Java Server Faces

�faces-config.xml

<managed-bean><managed-bean-name>student</managed-bean-name><managed-bean-class>edu.sabanciuniv.Student</managed-bean-class><managed-bean-scope>session</managed-bean-scope>

</managed-bean>

� Scopes� request

� session

� application

Page 20: Java Server Faces

Java Server Faces

�Sayfa yönlendirmesi<navigation-rule>

<from-tree-id>/page1.jsp</from-tree-id>

<navigation-case>

<from-outcome>success</from-outcome>

<to-tree-id>/success.jsp</to-tree-id>

</navigation-case>

<navigation-case>

<from-outcome>failed</from-outcome>

<to-tree-id>/fail.jsp</to-tree-id>

</navigation-case>

</navigation-rule>

Page 21: Java Server Faces

Java Server Faces

�Arayüz Bileşenleri (UI Components)�Sunucu tarafında çalışır

form.jsp

Browser

UI

Page 22: Java Server Faces

Java Server Faces

� “Component tree”

� Sayfaya request geldiğindeeğer View Id mevcut değil iseyeni bir component tree oluşturulur

� View-id var ise güncellenir

View

Form

input

command

input

Page 23: Java Server Faces

Java Server Faces

�“Validators” & “Converters”�Validators—Girdi kontrollerini yapar

�UIInput bileşenlerini değerlerini kontrol eder

�Bir veya daha fazla bileşen kontrolü yapabilir

�Genel durumlar için hazır “Validator” ler vardır

� Converters—Veri Tipleri dönüşüm işlemlerini yapar�Output: Object to String

�Input: String to Object

�Genel durumlar için hazır “Converter” ler vardır

Page 24: Java Server Faces

Java Server Faces

Örnekler;

�Converter:

�Validator:

<h:inputText value=“#{bean.date}”><f:convertDateTime pattern=“MM/dd/yyyy”/>

</h:inputText>

<h:input_text valueRef=”#{testingBean.today}” >

<f:validator_length minimum=”6” maximum='10” />

</h:input_text>

Page 25: Java Server Faces

J2EE Karikatürleri

�Java Server Faces

Page 26: Java Server Faces

J2EE Karikatürleri

�Dependency Injection

Page 27: Java Server Faces

J2EE Karikatürleri

�EJB

Page 28: Java Server Faces

Örnek Uygulama

Page 29: Java Server Faces

SORULAR

[email protected]

http://people.sabanciuniv.edu/ahmetdemirelli