Top Banner
JavaServerFaces Sabancı Üniversitesi Bilişim Teknolojileri Yüksek Lisans Programı Seminerleri 2008 Ahmet Demirelli SCJP 5.0, SCWCD 1.4 [email protected]
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

Nov 10, 2018

Download

Documents

dotuong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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