Cansiz
New member
- Katılım
- 7 Ocak 2006
- Mesajlar
- 2,048
- Reaction score
- 0
- Puanları
- 0
- Yaş
- 35
1. Struts Nedir?
Struts projesi Jakarta grubu tarafından Java Server Pages ve Java Servlet tabanlı web uygulamalarının belli bir kalıba (MVC-2) uygun olarak geliştirilmesini kolaylaştırmak için oluşturulmuştur. Struts sistemi web sayfası tasarımcısının tasarıma, yazılım geliştiricisinin ise iş mantığına odaklanmasına olanak sağlar.Bildiğimiz gibi Java Servlet teknolojisi geliştirilerek Java programlama dili ile sunucu (server) taraflı web uygulaması geliştirmenin temelleri atılmıştır. Servlet teknolojisi, Java sınıflarından oluştuğu için istemciden gelen istekleri Java servlet sınıflarına yönlendirecek bir Servlet kabına (Container) ihtiyaç duymaktadır (bkz Şekil-1). En çok kullanılan Servlet kapları Apache Tomcat, Websphere v.b.

Gelen isteğe göre istemciye gönderilecek cevap (HTML etiketleri ?) servlet sınıfı içinde oluşturulmaktadır. Cevap olarak gönderilen HTML etiketlerinde (HTML tag) değişiklik yapmak istediğimizde Servlet sınıfı içinde değişiklik yapıp derlememiz gerekir. Bu da uygulama esnekliğinin kaybolmasına, tasarımcının Java kodlarıyla uğraşmasına neden olur.
Servlet ile web uygulaması geliştirmedeki zorluğu ortadan kaldırmak için daha sonraları Java Server Pages (JSP) teknolojisi geliştirildi. JSP teknolojisinin temelini, XML / HTML etiketlerinden ve bunların aralarına script olarak konulan Java kodlarından oluşan jsp uzantılı dosyalar oluşturmaktadır. Tomcat gibi kaplar tarafından web uygulaması yüklenirken jsp uzantılı dosyalar arka tarafta Servlet sınıflarına dönüştürülüp derlenmektedir. (bkz Şekil-2)

JSP teknolojisi geliştirilmesi ile Servlet teknolojisindeki sorunların kalkmasına rağmen yeni sorunlar ortaya çıkmıştır. Özellikle uygulama geliştirme (development) aşamasından önce herhangi bir tasarım, modelleme gibi yazılım geliştirme aşamalarının uygulanmadığı projelerde iş mantığının tamamı veya bir kısmı Java kodu olarak jsp sayfalarına gömülmektedir. Üstelik aynı işi yapan ama farklı sonuç gösteren jsp sayfalarında ise Java kodları kopyalanmaktadır. Böylece kod tekrarları oluşmakta, jsp sayfalarının yönetimi zorlaşmakta, kod güvenliği ortadan kalkmaktadır.
Web tabanlı projelerde karşılaşılan bu tür sorunları ortadan kaldırmak için MVC (Model View Controller) tasarım kalıbına uyularak bir çok sistem yaratılmıştır : Barracuda, Expresso, Maverick v.b. Struts projesinde MVC-2 tasarım kalıbı kullanılmıştır. Yani istemci tarafından gelen istekler ilk olarak Yönetici Servlet (Controller Servlet) tarafından karşılanmakta ve Java Bean'e, JSP sayfasına yada Servlet'e yönlendirilmektedir.
2. Struts'ı Neden Kullanmalıyım
Struts ile;
- JSP sayfalarında bulunan Java kodları en aza inmekte
- Kullanıcı arayüzünde (JSP) iş mantığını barındıran kodların bulunması engellenmekte
- Arayüz tasarımcısının tasarıma yoğunlaşması sağlanmakta
- Web tabanlı uygulamanın olay akışının tek bir XML dosyası (struts-config.xml) üzerinden kontrolü sağlanmakta
- Yaygın olarak kullanılan form kontrolleri (e-posta adresi, boşluk, sayı, karakter kontrolleri v.b. ) tanımlanmış olarak gelmekte
- Form kontrolleri sunucu (Java) veya istemci (JavaScript) tarafında kullanılabilmekte
- Birden fazla dili destekleyen uygulamalarda kullanıcı arayüzünde gösterilen mesaj ve etiketlerin yönetimi properties dosyalarından yapılmakta (id8n)
- UTF - 8 kodlamasına (Internalization) destek verilmektedir
3. Tomcat ve Struts Kurulumu
Struts kurulumunu Tomcat sunucusu üzerinde yapacağız. Bunun için sistemimizde Tomcat sunucusunu kurup çalışır hale getirmemiz gerekir. Tomcat sunucusunu ve Struts paketini Burdan indirebilirsiniz. Genel olarak web uygulamalarımızı Tomcat kurulum dizini altındaki webapps klasöründe oluştururuz. Yine bu dizin altında struts_ornek_1 adında yeni bir dizin oluşturalım. Yapacağımız ilk struts uygulamasını struts_ornek_1 klasörü altında oluşturacağız (bkz Şekil-3)

Şekil 3 - Örnek web uygulaması dizin yapısı
Yine Struts paketi içindeki lib dizininde bulunan tld ve xml uzantılı dosyaları struts_ornek_1WEB-INF dizini altına koplayalım (bkz Şekil-4). tld uzantılı dosyalar Özel Etiketlerin (Costum Tag) tanımlamalarını içerir. Kopyaladığımız tld dosyaları jsp sayfalarında kullanacağımız Struts Özel Etiketlerinin tanımlamalarını içerir.

Şekil 4 - Gerekli paketler ve dosyalar
Gerekli dosyaları kopyaladıktan sonra web.xml ve struts-config.xml konfigurasyon dosyalarını WEB-INF dizini altında oluşturalım. web.xml dosyası uygulamaya ait Tomcat ayarlarını, struts-config.xml ise Struts ayarlarını içerecektir.
4. web.xml Dosyasının Oluşturulması
PHP:
<?xml version = '1.0' encoding = 'windows-1254'?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app> <description>Empty web.xml file for Web Application</description> <servlet>1. <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param>2. <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping>3. <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <servlet-mapping>4. <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> <welcome-file>index.html</welcome-file> </welcome-file-list>5. <taglib> <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri> <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri> <taglib-location>/WEB-INF/struts-logic.tld</taglib-location> </taglib></web-app>
2. bölümde Servlet sınıfı için gerekli olan konfigurasyon dosyası tanımlanıyor. Yönetici Servlet oluşturulurken bu dosya içindeki bilgiler de yüklenmektedir.
3. ve 4. bölümlerde *.do ve /servlet/* uzantılı URL lerden gelen isteklerin 1. bölümde tanımlanan Servlet sınıfına yönlendirilmesini sağlayan tanımlar yapılmaktadır.
5. bölümde ise uygulama içinde kullanılacak özel etiketlerin tanımları için kısa yollar tanımlanmaktadır.
Aslında Struts sisteminin kurulumu için yapılması gerekenler bu kadar diyebiliriz. Bundan sonraki aşamalarda artık projeye yönelik yapılması gerekenler olacak. Bu aşamalar:
- struts-config.xml dosyasının oluşturulması
- Action ve ActionForm sınıflarının oluşturulması
- JSP sayfalarının yazılması
- Oluşturulan sınıflar ve JSP sayfaları arasındaki ilişkilerin struts-config.xml
- dosyasında tanımlanması