ahmet demirelli -...

26
JavaServerFaces Sabancı Üniversitesi Bilişim Teknolojileri Yüksek Lisans Programı Seminerleri 2008 Ahmet Demirelli SCJP 5.0, SCWCD 1.4 [email protected]

Upload: dotuong

Post on 10-Nov-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

JavaServerFaces

Sabancı Üniversitesi Bilişim Teknolojileri

Yüksek Lisans Programı Seminerleri

2008

Ahmet DemirelliSCJP 5.0, SCWCD 1.4

[email protected]

Page 2: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Hakkımızda

� SabancıÜniversitesi BT Yüksek Lisans Programı� Yüksek Lisans Eğitimi

� Programlama (Java, JavaEE ,.NET, C#,Php)

� Database (Oracle, MySQL,MSSQL, PL/SQL)

� Network (LAN,WAN, Router Configuration.etc)

� Sistem ve Network Güvenliği

� http://www.sabanciuniv.edu/mdbf/kcenter/tr/

� Kurumsal Java / .NET/ Network eğitimleri� http://www.sabanciuniv.edu/mdbf/kurslar/tr/

� Kurumlara teknoloji danışmanlığı ve proje yardımı

Page 3: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Ajanda

� Hakkımızda

� Model-1 ve Model-2 Mimari

� Model View Controller (MVC)

� MVC Frameworkleri

� Java Server Faces

� Örnek Uygulama

� Sorular??

Page 4: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Model-1 Mimari

� HTML form bilgisini JSP veya Servlet`e gönderir

� JSP den iş bilesenlerine baglanır

� İs bileşenleri database işlemlerini yapar

� Yapılan işlem sonucu JSP ye bilgi döner

� JSP dönen sonucu client tarafına gönderir

DatabaseBrowserJSP

(view)JavaBean(model)

Application Server

Page 5: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Model 1 Dezavantajları

� Bakım zorlugu

� Hataların bulunma zorlugu

� Sayfa akış düzenini degistirme zorlugu

� Modüler olmayan uygulamalar� Sisteme yeni modüller ekleme zorlugu

� Güncelleme problemi

Page 6: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Model 2 Mimari (MVC)

� Bütün istekler Controller servlet tarafından karşılanır� Controller Servlet, Model sınıflarını kullanarak işlemi yapar

� Model bilesenleri database ile ilgili islemleri yapar

� Yapılan işlem sonucunda gösterilecek olan bilgi view bileşenleri (JSP) ile gösterilir.

� JSP dönen sonucu client tarafa gönderir

DatabaseBrowser

Controller(Servlet)

Model(JavaBean)

Application Server

View(JSPs)

Page 7: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Model-View-Controller

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

� Bu katmanda yapılanlar;� Database sorgulamaları (Pesistence için JPA veya bir ORM

Frameworkü kullanılabilir)

� İş kurallarının kontrolü

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

Page 8: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Model-View-Controller

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

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

Page 9: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Model-View-Controller

� Controller (Kontrol katmanı)� Uygulamaya gelen isteklerin nasıl işlenecegine ve

sonucunun nasıl gösterileceği bilgisini tutar

� Kullanıcı isteklerine göre hangi iş bilesenlerininçalısacagına karar verir

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

Page 10: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

MVC Avantajları

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

� Esnek ve moduler yapı

� Sayfa akış kontrolu merkezi olması

� Katmanların net olarak birbirinden ayrılması

Page 11: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

MVC Dezavantajları

� Saglam bir MVC uygulaması yazmak iyi bir tasarım ve kodlama gerektirir

� Eğer bir framework kullanılacak ise frameworkü öğrenmek ve uygulama geliştirmeye başlamak vakit alır

� Her bir istek (request) için arka planı tasarlanmalıdır. (Controller, model ve view bilesenleri tasarlanmalıdır)

Page 12: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

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

Page 13: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Java Server Faces

� Web uygulamala arayüzleri geliştirmeyikolaylaştıran java tabanlı Web Frameworktanımlaması ve referans uygulamasıdır (JSF-RI).

� JSF Açık kaynak kodlu standarttır: JSR127.� Java Community Process : www.jcp.org.

� JSF, Java EE teknolojisinin bir parçasıdır.

� JavaEE uyumlu tüm uygulama sunucularda çalıştırılabilir.

� Java`nın ASP.NET e karşılık gelen teknolojisidir.

Page 14: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Java Server Faces

Neden Kullanılmalı ?

� Hazır MVC altyaspısını sağlar

� Uygulama geliştiricilerin rollerini net bir şekilde ayırır

� Genisletilerbilir bir komponent altyapısı sunar

� Standarttır ***

� Endüstri desteği hergün artmaktadır

� Hızlı uygulamalar geliştirmemizi sağlar

� Uygun gelistirme araçları ile sürükle-bırak şeklinde uygulama geliştirme imkanı sunar

Page 15: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Java Server Faces

� Popüler JSF Implemantasyonları� MyFaces

� http://myfaces.apache.org/

� JSF-RI� http://java.sun.com/javaee/javaserverfaces/

� http://javaserverfaces.dev.java.net/

Page 16: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Java Server Faces

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

� “Faces” bilesenleri : HTML bilesenlerinin sunucu tarafındaki karsı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çisleri ve yönlendirmeleri,

Uygulamada kullanılacak olan JavaBean (ManagedBean /BackingBean) tanımları

Page 17: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Java Server Faces

� JSF önyüz (loginpage.jsp)<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

<f:view>

<h:form>

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

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

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

action="#{user.authenticateUser}" /><br>

</h:form>

</f:view>

Page 18: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Java Server Faces

� ManagedBeanpublic class User {

private String username;

private String password;

public User() { }

public String getUsername() { return username;}

public void setUsername(String username) { this. username

= username;}

public String getPassword() { return password; }

public void setPassword(String password) { this. password

= password; }

public String authenticateUser() {

// kullanıcıyı onayla ve “success” döndür

} }

Page 19: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Java Server Faces

� faces-config.xml

<managed-bean>

<managed-bean-name>user</managed-bean-name>

<managed-bean-class>edu.sabanciuniv.User</managed-bean-class>

<managed-bean-scope>session</managed-bean-scope>

</managed-bean>

� Scopes� request

� session

� application

Page 20: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Java Server Faces

� Sayfa yönlendirmesi<navigation-rule><from-tree-id>/loginpage.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: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Java Server Faces

Page 22: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Java Server Faces

� JSF Request yasam döngüsü� Komponent agacının olusturulması

� Request degerlerinin atanması

� Girdi kontrollerinin yapılması

� Model degerlerinin güncellenmesi

� Uygulamanın çagırılması

� Response un gönderilmesi

Page 23: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

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: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Java Server Faces

Örnekler;

� Converter:

� Validator:

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

</h:inputText>

<h:input_text valueRef=”#{user.password}” >

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

</h:input_text>

Page 25: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

Örnek Uygulama

JSP with JSF tagsManagedBean

(user)

username

password

authenticate ( )

success.jsp fail.jsp

Required fields

Page 26: Ahmet Demirelli - people.sabanciuniv.edupeople.sabanciuniv.edu/ahmetdemirelli/downloads/JSF-2.pdf · Java Server Faces Web uygulamala arayüzleri geli ştirmeyi kolayla ştıran java

SORULAR

[email protected]

http://people.sabanciuniv.edu/ahmetdemirelli