EGE ÜNĐVERSĐTESĐ BĐLGĐSAYAR MÜHENDĐSLĐĞĐ SUNUCU YAZILIM TEKNOLOJĐLERĐ LABORATUAR PROJESĐ



Benzer belgeler
EGE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ SUNUCU YAZILIM TEKNOLOJİLERİ LABORATUAR PROJESİ JAVA SERVER FACES

Tomcat Uygulama Sunucusunun Kurulumu. İlk olarak adresine gidiyoruz.

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

Client Server Database

Üst Düzey Programlama

JavaServerFaces. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4

2.Eclipse açıldıktan sonra Workspace alanı seçilmesi gerekir. Workspace alanı projelerinizin fiziksel olarak bulunduğu kısımdır.

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005

.com. Özcan Acar 2009 Kurumsal Java.com

ÖZGÜR YAZILIMLAR İLE J2EE

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu

NJ-NJ ETHERNET/IP HABERLEŞMESİ

IPACK LADDER. Arayüz Dökümantasyonu

Java EE 5 Teknolojileri Jboss Seam

Sisteme giriş yapıldığında ana sayfa üzerinde işlem menüleri, Hızlı erişim butonları ve mail gönderim istatistikleri yer alır.

Spring Ekosisteminde Kurumsal Yazılım Geliştirme. Kenan Sevindik Harezmi Bilişim Çözümleri A.Ş.

SQL 2005 SQL STUDIO MANAGER ACP YAZILIMI KURULUM KILAVUZU

INTERNET INFORMATION SERVICES 6.0 DA WEB SAYFASI YAYINLAMAK

Boğaziçi Üniversitesi Bilgi İşlem Merkezi. Web Yönetimi Birimi. Drupal Kullanım Kılavuzu

TEMEL BAŞLANGIÇ KILAVUZU

Java Programlamaya Giriş

Üst Düzey Programlama

NicProxy Registrar AWBS Modül Kurulumu Versiyon 1.0

TCMB Deneyim Raporu. Kurumsal Java Uygulama Platformu. Sacit Uluırmak. Türkiye Cumhuriyet Merkez Bankası Sistem Araştırma ve Planlama Müdürlüğü

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

MAC İşletim Sistemine Sahip Makineler İçin Elektronik İmza Kurulumu

JBoss Seam Next Generation Integration Framework

DESTEK DOKÜMANI. Ürün : Tiger Enterprise/ Tiger Plus/ Go Plus/Go Bölüm : Kurulum İşlemleri

Java Programlama Giriş

Yeni kullanıcı hesabı açmak ya da varolan hesaplar üzerinde düzenlemeler yapmak.

Facade (Cephe) Tasarım Şablonu KurumsalJava.com

HTML isteklerini anlayarak HTML sonucu üreten ve yaygın olarak kullanılan temel Servlet sınıfı HttpServlet tir.

Intercepting Filter Tasarım Şablonu KurumsalJava.com

MVP, Observer ve Mediator Örüntüleri ile Yeniden Kullanılabilir Uygulama Bileşenleri Geliştirme

Üst Düzey Programlama

NPratik Yazılım Kurulum Kılavuzu. Yedekleme İşlemi

ANKARA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. Java Teknolojileri Kullanılarak. Kan Bağış Web Uygulamasının Tasarlanması

MOBİL UYGULAMA GELİŞTİRME

MyFaces Özgür JSF Uyarlaması. Bora Güngören Portakal Teknoloji

Metin Editörleri YRD. DOÇ. DR. ENGİN CEMAL MENGÜÇ. ALINTI:

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Data Structures Lab Güz

ASP.NET ile Bir Web Sitesi Oluşturma

Sade ve tam ekran masaüstü kullanımının temel çıkış noktası, aranılan özelliğe çabuk erişimi sağlayan yenilikçi kullanıcı deneyimidir.

Üst Düzey Programlama

Aktif Dizin Logon/Logoff Script Ayarları Versiyon

Spring Framework Eğitimi

KANTAR UYGULAMASI Kurulum Kılavuzu

Coslat Monitor (Raporcu)

TAPU VERİ SAYISALLAŞTIRMA YAZILIMI KURULUM DÖKÜMANI. Tapu Kadastro Genel Müdürlüğü-Bilgi Teknolojileri Daire Başkanlığı Page 1

Spring Application Framework Harezmi Bilişim Çözümleri

HSancak Nesne Tabanlı Programlama I Ders Notları

Programlama Yazılımı ile Web Sitesi Oluşturma

VERİ TABANI UYGULAMALARI

NicProxy Registrar WHMCS Modül Kurulumu Versiyon 1.0

U y g u l a m a A i l e s i (Abakus 360, T-Panel, T-CRM) Tarayıcı Ayarları. IPera İletişim Teknolojileri

YAZILIM ÜRÜN HATTI DEĞĐŞKENLĐĞĐNĐN DENETĐM ÇEVRĐMĐ ĐLE ELE ALINMASI

MPLAB IDE v7.60 PROGRAMI KULLANIMI

Windows 10 için Java JDK 8 ve NetBeans IDE 8.2 Kurulumu Detaylı Anlatım

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

İŞLEM COĞRAFİ BİLGİ SİSTEMLERİ MÜHENDİSLİK VE EĞİTİM LTD. ŞTİ. ArcGIS 10.1 Desktop Ücretsiz Deneme Lisanslaması

Vodafone Akıllı Bas Konuş Servisi Masaüstü Uygulaması Kullanım Kılavuzu

Bu makalede 2003 sunucu, Windows 2003 Server anlamına gelmektedir. Aşağıda yapılan işlemler 2003 R2 sunucu üzerinde denenmiş ve çalıştırılmıştır.

SQL Server 2008 kurulum için Microsoft Windows Installer 4.5 ve üzeri bileşenin bilgisayarınızda kurulu olması gerekir. İndirmek için tıklayın

Özcan Acar 2009 Kurumsal Java.com

Spring Application Framework e Giriş

KULLANICI KILAVUZU: UEA FİX KULLANICILARININ SSLVPN ERİŞİMİ İMKB İÇİNDEKİLER

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

AKILLI TATIL PLANLAMA SISTEMI

JavaServer Faces (JSF) Sunucu Yazılım Teknolojileri 2008

İçindekiler. Okuma lisansı info acar, için verilmiştir. Çoğaltılması ve dağıtılması yasaktır

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

AHTAPOT Güvenlik Duvarı Yönetim Sistemi Kullanımı

WEB 2.0 ARAÇLARINI TANIMAK

Rahman USTA Editör Altuğ B. ALTINTAŞ Papatya Yayıncılık Eğitim

Öğr. Gör. Serkan AKSU 1

JAL IN İNTERNET TEN İNDİRİLMESİ VE KURULMASI

MEBWEB OKUL/KURUM WEB SİTELERİ KULLANIM KLAVUZU TEMEL İŞLEMLER

Spring Security Framework Harezmi Bilişim Çözümleri

Android Ders Notları

MESS BULUT SİSTEMİ ÜYE PORTALI KULLANIM KILAVUZU

JasperReports Server ve Ireport raporlama Sistemi Kurulumu / Kullanımı 1. Bölüm 2. Bölüm 1- JasperReports Server ve Ireport Nedir?

Kets DocPlace LOGO Entegrasyonu

Veri Tabanı Yönetim Sistemleri Bölüm - 02

MENÜ AYARLAMA 1. MENÜ AYARLAMA. [X] [X] Standard. [X] [X] Yeni Fonksiyon

PERKON PDKS Kurulum ve hızlı başlangıç rehberi

Tarih: 2 Ağustos 2018 Son versiyon: 1.8. EndNote X9 Windows Multi/Site kurulum talimatları

Flash ile Etkileşimli Öğretim Materyali Hazırlama Semineri

Checkpoint SSL-VPN Kurulum Prosedürü. Checkpoint Endpoint VPN Client

Nesne Oluşturma Sırasının Tanımlanması Otomatik Veri Tipi Dönüşümü Tekil Nesneler ve Bean Scope Scope Bazlı Nesnelerin Enjeksiyonu Tanımlanabilir

Satış Destek Personeli Eğitim Dökümanı

Mio Tool. Mio Tool Kullanım Klavuzu, Nisan 15, 2017 V 1.0 1

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

WAMP SERVER KURULUMU

MIRACLE DATA WORKS KURULUM DOKÜMANI

C) Kurulum için, güncel bir donanım (PIII ve üstü, 512 MB ram ve üstü) ve Java desteği gereklidir, Java kurmak icin: htp://

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

Transkript:

EGE ÜNĐVERSĐTESĐ BĐLGĐSAYAR MÜHENDĐSLĐĞĐ SUNUCU YAZILIM TEKNOLOJĐLERĐ LABORATUAR PROJESĐ Grup Üyeleri Gökhan Aydın Erkan Ölmez Özgün Bilgetay Ferdi Tokgözlü Gül Çabuk Esma Açar Nihal Sezer Neslihan Đmerci Duygu Doğan Çağdaş Döner 11 Mayıs 2010 Salı

ĐÇĐNDEKĐLER 1.Giriş.3 1.1.Spring Uygulama Çatısı....3 1.2.Spring Modülleri...3 1.3.Spring Çalışma Mantığı..... 5 1.4.Spring MVC.. 5 2.Eclipse Ortamında Spring Kurulumu........6 2.1.Kurulum Đçin Gerekli Dosyalar........6 2.2. Spring IDE Kurulum.....6 2.3.Konfigürasyon..... 7 2.4.Spring Projesi Yaratma..10 3.Spring MVC ile Uygulama Geliştirme Adımları...13 3.1.Web.xml.............13 3.2.BookShop-servlet.xml...........15 3.3.Sınıflar.............17 3.4.JSP Sayfaları............20 4.Sonuç................20 5.Kaynaklar 2

1.GĐRĐŞ 1.1.SPRING UYGULAMA ÇATISI Spring, son dönemde J2EE uygulaması geliştirme alanında yaygın olarak kullanılmaya başlanılan bir uygulama geliştirme çatısıdır.uygulama geliştirmeyi ve denetimi zorlaştıran ağır (heavyweight) çözümlere alternatif olarak hafif (lightweight) bir yapı sunarken, aynı zamanda esnek ve modüler bir şekilde bir çok özelliği içerisinde barındırması popülerliğinin artmasını sağlamıştır.annotation güdümlü yapılandırma ve genişletilebilir XML yazmaya olanak sağlaması da kullanımını kolaylaştırır. Java platformunun kullanımı, sunmuş olduğu detaylı API lerden dolayı zorlaşmışken Spring kendi API leri ile bu sorunu çözer. Spring in amacı program geliştirmeyi kolaylaştırmak ve geliştiriciye kullanım özgürlüğü sağlamaktır. Bu yüzden Spring frameworkünü oluşturan modüller birbirinden bağımsız olarak da kullanılabilir olarak tasarlanmışlardır. Bağımsız kullanılabilen bu modüller, birlikte kullanıldıklarında daha iyi sonuç veren iç frameworkler olarak düşünülebilirler.bu frameworkler karmaşık işleri bloklara ayırmak için bölümlendirilmişlerdir. 1.2.SPRING MODÜLLERĐ Spring Framework 3

Spring birbirinden bağımsız ve ihtiyaca göre kullanımına karar verilebilecek birçok farklı özellik içerir.bu özellikler çatıyı oluşturan yedi farklı birim tarafından sağlanır. 1.2.1.Spring Core(Spring Kabuğu) Bağımlılık iletimini sağlayan kabuk birimi, uygulama çatısının en temel birimidir. Bu birim, geliştiriciye çekirdek kozasının işlevlerini yönetme olanağı verir. Kabuğun içerdiği temel kavram olan BeanFactory, çekirdek yaratımında tekilliğin sağlanması gerekliliğini ortadan kaldırıp, bağımlılıkların biçim ve tanımlarını eşlemeyi programlama mantığından dışlar. 1.2.2.Spring Context(Spring Bağlamı) Kabuk biriminin üstünde, çekirdeklere uygulama çatısı tarzında erişimi sağlayan, bağlam birimi bulunur. Bağlam birimi, özelliklerini çekirdek biriminden kalıtır. Bu özelliklere metin tabanlı ileti gönderme desteği gibi özellikleri de ekler. 1.2.3.Spring DAO DAO birimi, çaba gerektiren JDBC kodlama ve veri tabanı üreticisine bağımlı hata kodlarını ortadan kaldıran JDBC soyutlama katmanını sağlar. JDBC paketi, sadece özel ara yüzleri gerçekleştiren sınıflara değil, tüm POJO lara (Plain Old Java Objects / Basit Java Nesneleri) da birim işlem yönetimi gerçekleştirmek üzere programlama ve tanımlama yöntemleri sunar. 1.2.4.Spring ORM ORM birimi, JDO, ibatis ve Hibernate de dahil olmak üzere, popüler nesneilişkisel eşleme API lerine bütünleştirme katmanı sunar. Geliştirici, ORM birimini kullanarak, tüm bu nesne-ilişkisel eşleyicileri Spring in diğer tüm imkanlarıyla birlikte kullanabilir. 1.2.5.Spring AOP Spring in AOP birimi, yönelim tabanlı programlama gerçekleştirimi olan AOP politikası sunar. Bu politika sayesinde, geliştirici kodunda bağımlılık yaratacak eşlemelerden uzak, işlevsel tanımlamalar yapabilir. 1.2.6.Spring Web Spring in Web birimi, servlet dinleyicileri ve web tabanlı uygulama bağlamını kullanarak bağlamlara ilk değer atama gibi temel web tabanlı bütünleşim özelliklerini sağlar. Ayrıca bu birim, Spring in WebWork ya da Struts ile birlikte kullanıldığı durumlarda bütünleşimi de gerçekleştirir. 1.2.7.Spring Web MVC Spring in Web MVC (Model-View-Control / Model-Görünüm-Denetim) birimi, web uygulamaları için Model-Görünüm-Denetim gerçekleştirimini sağlar. Spring in MVC gerçekleştirimi, yalnızca basit bir gerçekleştirim değil, Spring çatısının tüm özelliklerine taban olan, model ile etki alanı arasında kesin ayrımı sağlar. 4

1.3.SPRING ÇALIŞMA MANTIĞI Spring temel olarak, bileşenleri XML yapılandırma kütükleri aracılığıyla bütünleştirmeye dayalı bir yapı sunar. Bu yaklaşım esas olarak Denetim Çevrimi (Inversion of Control), diğer adıyla Bağımlılık Đletimi (Dependency Injection) tasarım örüntüsünü kullanır. Buna göre, bileşenler arasındaki bağımlılıklar bileşenlerin kendileri yerine Spring tarafından ele alınır. Spring bileşenleri bir araya getirmek ve biçimlendirmek için Java çekirdeklerini (JavaBean) kullanır. Bu çekirdeklere dair isimlendirmelerin yapılması, gerekli ilk değer atamaları ve diğer çekirdeklerle aralarındaki bağımlılıkların tanımlanması XML yapılandırma kütüklerinin içerisinde yapılır. Spring,bu kütükleri okur ve buradaki tanımları kullanarak sınıflar arasındaki bağ otomatik olarak oluşturulmuş olur. Gerçekleştirimine ihtiyaç duyulan nesneye, bağımlı olduğu nesnelerin yaratımını ihtiyaç duymadan erişilebilir. Bütünleştirici ihtiyaç duyarsa bu nesneleri yaratabilir. Bütünleştirici bu düzenlemeyi yaparken yanlızca yapılandırma kütüğünü (Configuration File) kullanır. Böylece, Spring çok etkin ve kolay sınama imkanları sağlar. Spring AOP (aspect oriented programming ) tarzı program yazılımını destekler.genelde transaction yönetimi, logging ve güvenlik gibi program parçaları kodun birçok yerinde kullanılır. AOP ile aslında program mantığının bir parçası olmak zorunda olmayan bu metod ve modüller merkezi bir yerde toplanarak, programdan bağımsız bir sekilde implemente edilir. 1.4.SPRING-MVC Spring MVC, isminden de anlaşılacağı gibi MVC tasarım şablonu kullanılarak implemente edilmiştir. MVC tasarım şablonunu implemente etmek için Front Controller tasarım şablonu kullanılır. Front Controller tasarım şablonu ile sisteme yöneltilen tüm istekler (request) merkezi bir yerde toplanarak işlem görürler. Spring MVC bünyesinde DispatcherServlet,Front Controller görevini üstlenmektedir. MVC tasarım şablonunun kullanıldığı bir projede model sınıfları JDBC ile okunduktan sonra işlenen verileri tutar. Model basit bir POJO (Plain Old Java Object) sınıfı olabilir. View gösterim katmanına aittir ve genelde JSP gösterim teknolojisi kullanılarak programlanır. View elementinin görevi model sınıflarında yer alan verilerin kullanıcıya gösterilmesini sağlamaktır. Model değiştiği zaman, view buna göre kendisini adapte ederek, modelin barındırdığı verileri gösterir. Controller sınıfları, model ve view arasındaki etkileşimi koordine etmek için kullanılır. 5

2. ECLIPSE ORTAMINDA SPRING KURULUMU 2.1.Kurulum için Gerekli Dosyalar: Eclipse IDE for Java EE Developers (http://www.eclipse.org/downloads/) Apache Tomcat 6.0 (http://tomcat.apache.org/download-60.cgi) Not: Bu linklerden programlara ulaşılabilir. Düzenlediğimiz klasör içersinde bu programlar hazır olduğundan indirmeye gerek yoktur. 2.2. Spring IDE Kurulum 1. Menu den Help->Software Updates tıklanır. 2. Add Site Location: kısmına spring IDE update sitesi olan http://springide.org/updatesite yazılır. 3. Ok tıklanır. 4. Core / Spring IDE seçilir. Next e tıklanır. 6

5. Lisans sözleşmesi kabul edilir. Kurulum tamamlanınca Eclipse Restart edilir. 6. Spring framework ü için eklenecek jar lar bu adresten indirilebilir: spring-framework-3.0.2.release.zip 21.4 MB 2.3. Konfigürasyon Eclipse ve Apache Tomcat kurulumu: 1. EclipseGalileo.zip klasörü içersindeki eclipse.exe çalıştırılarak uygun dizin workspace olarak ayarlanır. 2. Alt kısımdaki alandan Servers sekmesi seçilip alana sağ tıklayıp New - > Server seçilir. 3. Açılan pencereden server type olarak Apache altında Tomcat v6.0 Server seçilerek Next butonuna tıklanır. 7

4. Sonraki sayfada Browse butonuna tıklanarak Apache Tomcat in kurulu olduğu dizin girilir (Mesela C:\Program Files\Java\apache-tomcat- 6.0.26) ve Finish butonuna tıklanır. Böylece Tomcat Eclipse e entegre edilmiş olur. 8

Eclipse de Tomcat Konfigürasyonu: 1. Servers tab ından Tomcat server a çift tıklanarak server konfigürasyonuna ulaşılır. Sol tarafta Server Locations altındaki Use Tomcat Installation seçeneği seçilir. Server options altındaki Publish module contexts to separate XML files seçeneği ve sağ taraftaki Ports altında HTTP/1.1 portu(varsayılan 8080) seçili olmalıdır. 2. Kaydedildikten sonra server üzerine gelerek Start edilmelidir. Bu sırada güvenlik duvarı uyarılarında izin verilir. 9

3. Eclipse de Web Browser açılarak http://localhost:8080 adresine gidilir. Eğer Tomcat anasayfası açılıyorsa, Tomcat başarılı bir şekilde kurulmuştur demektir. 2.4.Spring Projesi Yaratma 1. File -> New -> Dynamic Web Project diyoruz. 2. Project Name: BookShop olarak verilir. Target Runtime Apache Tomcat v6.0, Dynamic web module version u 2.5 olarak seçilir. Configuration, Default Configuration for Apache Tomcat v6.0 olarak seçilip Next e tıklanır. 10

3. http://jakarta.apache.org/site/downloads/downloads_taglibsstandard.cgi adresinden jakarta-taglibs in 1.1.2.zip indirilip, unzip edilerek lib dizini altındaki jstl.jar ve standard.jar projenin lib dizinine kopyalanmalıdır. 4. Project Explorer da projemiz üzerinde sağa tıklayarak Spring Tools- >Add Spring Project Nature tıklanır. 11

5. Projemizin içindeki WebContent-WEB-INF sağa tıklanarak Other- >Spring dosyası altında Spring Bean Configuration File tıklanıp Next ile ilerlenir. 6. Açılan pencerede File Name: BookShop-servlet.xml yazılarak Finish e tıklanır. 12

7. Projemizdeki WebContent-WEB-INF deki web.xml dosyası text editor ile açılarak indirmiş olduğunuz projedeki web.xml ile değiştirilir. 3.SPRING MVC UYGULAMA GELĐŞTĐRME ADIMLARI 3.1.Web.xml DispatcherServlet(Ön Denetimci): Servlet (Front Controller Servlet)'in gelen tüm HTTP isteklerini (request) karşılaması ve bu isteği tanımlanan eşlemelere(mapping) göre değerlendirip yanıtı (response) üretecek olan işleyicilere (handler) yönlendirmesidir. Spring MVC'de işleyicilere karşılık olarak da Controller arayüzünü (interface) uygulayan (implement) sınıflardır. Đlk adım olarak uygulamaya gelen tüm istekleri bu Servlet'e yönlendirmeli ve böylece uygulamanın denetimini tamamen Spring'e bırakmalıyız. Bunu gerçekleştirebilmek için web.xml kütüğüne bir Servlet tanımı eklememiz gerekiyor. 13

web.xml Görüldüğü üzere uygulamamızın adı olan BookShop adı ile bir Servlet tanımı ekliyoruz ve Servlet sınıfı olarak da DispatcherServlet'i belirtiyoruz. Ayrıca tüm url'lerin bu Servlet'e yönlendirilmesi gerektiğini belirtiyoruz. Sitenin girişi niteliğide olan bir redirect.jsp hazırlamalıyız. Bir J2EE web uygulamasında sitenin açılış sayfası (ana sayfası) web.xml kütüğüne welcome-file etiketi içerisinde verilir ve burada verilen sayfanın açılışta görüntülenmesi için kullanıcıların erişimine açık fiziksel bir kütüğe işaret ediyor olması gerekir. Bu nedenle redirect.jsp sayfasını WEBINF/jsp kılavuzuna değil doğrudan uygulamanın kök kılavuzuna koymalıyız (BookShop/redirect.jsp). Uygulamaya gelen (<sunucu>/bookshop ile başlayan) tüm url'ler Spring'in DispatcherServlet'i tarafından değerlendirilecek ve bu isteğe buna göre cevap verilecektir. Yeri gelmişken DispatcherServlet'in davranışını belirleyen tanım ve yapılandırılmaların bulunduğu XML yapılandırma kütüğüne değinelim. Spring MVC çatısı bu yapılandırma kütüğü için <uygulama_adı>-servlet.xml şeklinde bir adlandırma öngörmüştür. Bu durumda bizim yapılandırma kütüğümüzün adı BookShop-servlet.xml olmalıdır ve bu kütüğün BookShop/WEBINF/ kılavuzunun altında bulunması gerekmektedir. 14

Komut nesnesi niteliklerini form alanlarına bağlayabilmek (bind) için Spring'in etiket kütüphanesini kullanmamız gerekiyor, bunun için de etiket kütüphanesi tanımlayıcısı kütüğü olan spring.tld kütüğünü uygulamanızın WEBINF kılavuzunun içine kopyaladık. Uygulamanın bu kütüphanenin kullanımına izin vermesi için web.xml kütüğüne taglib tag ı eklenmiştir. Artık bu etiket kütüphanesini bir JSP içerisinde kullanabilmek için tek satırlık bir kod yeterli olacaktır. 3.2.BookShop-servlet.xml Tüm tanımlamalar beans etiketleri arasına eklenen bean etiketleri ile bu kütükte yapılmaktadır. Spring'de görünümler (view) String'ler ile ifade edilebilirler. Görünüm çözümleyiciler (view resolver) bu String'lere göre doğru görünümleri tespit 15

edip yönlendirmelerin yapılmasını sağlarlar. Uygulamamızda JSP ve JSTL teknolojileri bir arada kullanıldığı için en uygun çözüm olarak org.springframework.web.servlet.view.internalresourceviewresolver sınıfı kullanılmaktadır. Görünüm çözümleyici sınıfın DispatcherServlet tarafından nesnesinin oluşturulup görünüm çözümlemede kullanılabilmesi için BookShopservlet.xml yapılandırma kütüğüne bu sınıfa dair çekirdek (bean) tanımını ve ilk değerlerini vermemiz gerekir. Uygulama başlatıldığında yapılandırma kütüğüne eklediğimiz bu çekirdeğin nesnesi oluşturulur. Burada verilen ilk değerlere göre bir görünümü (view) ifade etmek için kullanılan String'in başına /WEBINF/jsp/ öneki (prefix) ve sonuna.jsp soneki (suffix) getirilerek görünüme dair gerçek adrese ulaşılabilir. Bu sayede önek ve sonek yazma zahmetine katlanma ortadan kaldırılabilir. Örneğin /WEBINF/jsp/book/create.jsp görünümüne sadece create anahtarıyla erişilebilir. Yazdığımız denetimci sınıfın DispatcherServlet tarafında tanınıp gerekli yönlendirmelerde kullanılabilmesi için onu yapılandırma kütüğüne eklememiz gerekmektedir. Bu da şu kod parçacığı ile sağlanmıştır. Uygulama çalıştırıldığında aşağıdaki tanımlama sayesinde, BookServiceImpl sınıfının bir olgusu bookservice adıyla Spring tarafından oluşturulacaktır. Spring in daha önceki versiyonlarında gelen isteklerin uygun handler lar ile eşleştirilmesi için web uygulamasında handler mappingleri kullanıcıların tanımlaması gerekiyordu. Spring in 2.5 versiyonu ile birlikte DispatcherServlet, @Controller annotasyonunu içeren sınıflarda @RequestMapping annotasyonlarını arayan DefaultAnnotationHandlerMapping ı desteklemektedir. Order property si sayesinde de Spring bulduğu HandlerMapping leri sıralar ve bunlardan 1.sini kullanır. Bu işlemlerden sonraki ekran görünümü şu şekildedir. 16

3.3.SINIFLAR 3.3.1.LoginController Denetimciler (controller) daha önce söz edildiği üzere bir HTTP isteğini (request) değerlendiren ve buna göre bir yanıt (response) üretip, bu sonuca uygun bir sayfaya yönlendirme işini yapan sınıflardır. 3.3.2.BookController 17

18

19

3.3.3.BookDB: Veritabanı kullanılmadığı için kitapların bulunduğu koleksiyonu içeren sınıf. 3.3.4.Book Id, author, title, owner,available özelliklerini içeren sınıf. 3.3.5.User Kullanıcıyı temsil eden sınıf. Kullanıcı adını içeriyor. 3.3.6.BookService Add, update, delete, list,borrow ve find methodlarını içeren interface. 3.3.7.BookServiceImpl BookService interface ini gerçekleştiren sınıf. 3.4.JSP Sayfaları 3.4.1.Redirect.jsp Hiç bir bilgi ya da görüntü içermeyip, isteği (request) başka bir sayfaya yönlendirir, kendisine gelen istekleri jsp/user/login.jsp adresine yönlendiriyor. 3.4.2.Borrow.jsp Kullanıcıya tüm kitapları listeleyen ekran. Kullanıcı bu ekranda ödünç alınmış olan kitapları görebilir ya da ödünç alma işlemini gerçekleştirebilir. 3.4.3.Create.jsp Yeni bir kitap eklemenin yapıldığı sayfa. 3.4.4.List.jsp Kitap silme, görüntüleme ve değişiklik yapma gibi işlemlerin yapılabildiği admin sayfası. 3.4.5.Show.jsp Bir kitapla ilgili bilgilerin gösterildiği sayfa. 3.4.6.Update.jsp Kitaplar üzerinde değişikliğin yapıldığı sayfa. 4.SONUÇ Spring MVC nin sağladığı avantajlar Spring MVC, dependency injection ve diğer Spring özelliklerini web aplikasyonlarında kullanma imkanı tanıyarak, daha esnek ve test edilebilir yapıların oluşmasını sağlar. JSP sayfalarında implementasyonu kolaylaştırmak ve içeriği Java kodundan bağımsız kılmak için JSP tagler (tag library) kullanılır. Spring MVC, JSP EL (expression language) dilini kullanan kendi tag kütüphanesi sahiptir. Spring Struts, Tapestry gibi diğer popüler web frameworkleri ile entegre edilebilir. Bunun yanısıra Spring MVC, JSP harici diğer gösterim teknolojilerinin kullanımını mümkün kılmaktadır. HTML formları için özel model sınıflarının oluşturulması gerekmemektedir. Business katmanında bulunan domain modele ait sınıflar HTML formlardaki verileri tutmak için kullanılabilir. Spring MVC kullanıcının girdiği verileri otomatik olarak kullanılan model sınıfından bir nesneye dönüştürerek, verilerin kullanımını kolaylaştırır. 20

Web aplikasyonu için gerekli tüm konfigürasyon Spring den tanıdığımız XML dosyalarında yapılır. Bu, programın tekrar derlemek zorunda kalmadan değiştirilebilir ve genişletilebilirliğini artırır. Çevik süreç XP de test güdümlü implementasyon büyük önem taşımaktadır. Kullanılan araçlar bunu desteklemediği sürece web tabanlı aplikasyonları XP tarzı implemente etmek zor bir süreç olabilir. Spring MVC HTTP protokolünü simule eden mock sınıflarla test güdümlü implementasyonu kolaylaştırır. Spring in sağladığı esnek ve yapılandırılabilir yapı sayesinde Spring MVC nin gücü Spring in veri tabanı desteği ve daha farklı konularda sağladığı desteklerle birleştirilerek çok yetenekli uygulamalar geliştirmek mümkündür.spring in Hibernate benzeri veritabanı teknolojilerini,çeşitli görünüm teknolojilerini ve daha birçok farklı teknolojiyi desteklediği dikkate alındığında kullanım yaygınlığının artarak devam edebileceği sonucu çıkarılabilir. 5.KAYNAKLAR http://static.springsource.org/spring/docs/3.0.x/spring-frameworkreference/pdf/spring-framework-reference.pdf http://www.vaannila.com/spring/spring-mvc-tutorial-1.html 21