Struts Sisteminin Kurulumu 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 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 ihtiyaç duymaktadır (bkz Şekil-1). En çok kullanılan Servlet kapları Apache Tomcat, Websphere v. b. Tıkla Gelen isteğe göre istemciye gönderilecek cevap servlet sınıfı içinde oluşturulmaktadır. Cevap olarak gönderilen HTML etiketlerinde 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 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) Tıkla JSP teknolojisi geliştirilmesi ile Servlet teknolojisindeki sorunların kalkmasına rağmen yeni sorunlar ortaya çıkmıştır. Özellikle uygulama geliştirme 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 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

Java Nedir?JAVA''ya genel bir bakış!! Sadece interneti değil tüm bilgisayar dünyasını değişime uğratacak SUN firmasının geliştirdiği yeni platform bağımsız programlama dili. Hindistan'da bir ada. Ana ihracat ürünü kahve olan Pazifik'te bir ada bu yüzden USA'da kahve için kullanılan argo kelimedir. 1. Basit & Küçük Java programlama dilinin öğrenilmesinin kolay olduğunu iddia eden Sun'daki geliştiricilere, yeni programlamaya başlayanların inanması biraz güç olacaktır. Programlamayı bilen kişiler için çok daha kolaydır. Çünkü Java C++ 'a çok benzer. C++ 'da karmaşık olan bazı şeyler atılmış, basit olanlar eklenmiş Küçük : Java çok küçük işlemcilerde bile çalışabilir. Temel ihtiyacı 215 KB dır. 2. Nesneye yönelimli & Dağınık Nesneye yönelimli mi? O da ne? Nesne yönelimli , insanların kavramada çok zorluk çektikleri bir kavram. Ama bu, iyi özelliklerinden dolayı, yazılım geliştirmede kabul görmesini engelleyemiyor. Adından da anlaşıldığı gibi, nesneye yönelimli programlamada insan nesne geliştirmeye konsantre oluyor. Nesne, verilerden ve bu verileri değiştirmeye yarayan fonksiyonlardan oluşuyor. Nesneye yönelimli programlamada, sonradan kullanılabilecek genel nesneler oluşturulması idealdir . Profesyonel programlamada, devamlı büyüyen havuzda bulunan nesnelere ulaşılarak, bu nesneler tekrar kullanılabilir . Standart sınıf kütüphaneleri oluşturulmuştur. Bunlar programların içine katılırlar. Uzaktaki bir sistemde bulunan nesnelere Java programları Internet üzerinden kolayca ulaşabilirler. Sun firmasının vizyonu : Programların tamamının lokal bilgisayarda bulunmaması, gerekli parçacıklarına ihtiyaç halinde internet üzerinden erişilmesi. Sun firmasının bu vizyonunun gerçek olup olmayacağını göreceğiz... 3. Yorumlayıcılı & Hızlı Java programları direkt işlemci tarafından yorumlanmaz. Özel bir program tarafından yorumlanırlar . Bunun avantaj ve dezavantajları vardır : Programı geliştirirken bazı adımlardan kurtulursunuz. Örneğin bazı program parçacıklarına bağlantı kurmaktan . Dezavantajı ise tüm desteklemelere rağmen, programın çalışmasının yavaş oluşu. Sun firması bir ara katman oluşturdu. Java bir önyorumlayıcı tarafından byte koduna çevrilir. Çok büyük avantaj olan, bazı küçük değiştirmelerde derleyemeye gerek kalmaması, bununla yok oluyor. Fakat bu "bytecode" makina diline çok yakındır. Bundan dolayıdır ki çok hızlı bir kod oluşturulmuş oluyor. Bu arada "Just-in-Time" Compiler lar "bytecode" u gerçek makina koduna çeviriyorlar. Böylece hız 10 kat artıyor. Sun firmasının geliştireceği özel "Java işlemcileri" kapıda. Bunlar Java programları direkt çalıştıracaklar. 4. Sağlam & Güvenilir Derleyici ve yorumlayıcı kombinasyonun başka bir yönden avantajları var. Ön derleyici tip hataları kontrol ederken, yorumlayıcı hataları yakalar ve gereğini yapar. En kötü ihtimalle, derlenmiş bir program çöker. Yorumlayıcı, yabancı verilere ulaşılmasını engeller. C++ 'taki bu özellik kaldırmış. Gerçekten Java güvenli bir programlama dili ( Hiç bir şey %100 güvenli değildir. Günümüzde kredi kartı üçkağıtçılığı yapılmasına rağmen halen insanlar hal kredi kartlarını internet üzerinden kullanıyorlar. Niye Java %100 güvenilir olsun ki...) 5. Platform bağımsız & Taşınabilir Burada program geliştiricilerinin bir rüyası gerçekleşiyor:Herkes farklı işlemcilerde ve işletim sistemlerindeki problemi bilir. Birisinde çalışır diğerinde çalışmaz ve bu geliştiricilerin kabusudur ( Düşünün ki 10 tane video sistemi var ). Derleyici burada devreye girer ve programı "bytecode" çevirir. Bu kod tamamen platform bağımsızdır ve tüm işlemcilerde çalışır Bir Java programı, hiçbir değişiklik yapılmadan, desteklenen tüm sistemlerde çalışır. Ayrıca C++ 'da bazı belirsizlik arz eden tanımlar temizlenmiş. Bu tanımlar değişik sistem ve derleyicilerde, değişik biçimlerde kabul ediliyorlardı. Örneğin C++ 'da hiçbir zaman bir tamsayının kaç byte olduğu bilinemiyordu. Java'da bir tamsayı herzaman 4 Byte dır. 6. Multithread & Dinamik Modern bir programda bir çok işlem aynı zamanda olur. Bu özelliğe "multithread" deniyor . Java bu tür programlar geliştirenlere, özel fonksiyonlar sunuyor ki, geliştiriciler programın asıl amacına konsantre olsunlar. Bazı düzenlemelerden dolayı Java, C++ 'dan daha dinamiktir. Sınıflar ve Nesneler arasındaki ilişkiler katı bir kural ile bağlı değildirler. İleriki safhalarda değiştirilmesi çok basittir.

Tag Library'e Giriş Tag Library'e Giriş Tag library View'in bir parçasıdır. Tag Library ile dinamik tagler üretmeniz mümkündür. En basit haliyle <yildiz:greeting/> Olarak kullanılabilir. Yaptığımız örneklerde JSP sayfalarında kullanılmış olan Tag Libraryler; <%@ taglib uri="/WEB-INF/struts-bean. tld" prefix="bean" %> <%@ taglib uri="/WEB-INF/struts-html. tld" prefix="html" %> Olup standart struts ile gelen ve WEB-INF klasöründe bulunan '. tld' dosyalarında tanımlı tagler kullanılmaktadır. '. tld' dosyaları Tag Library Definition dosyalarıdır ve xml formatındadırlar. JSP sayfalarında çokça kullanılan struts-html tagleri prefix 'html' alarak kullanılırlar. Bir tag library JSP'de hangi prefix ile kullanılacaksa bu prefix attributesi ile belirtilir. Görüldüğü gibi struts-bean' deki tagler bean prefix'i ile kullanılırlar. <bean:tagname atr1=...,...></bean:tagname> gibi... Java size kendi taglarinizi de yaratmanıza olanak tanır. Mesela; Fantezi olsun diye söylüyorum, cevizde kullanıcıları listeleyen bir sayfa var. İşte o sayfa için her sayfada 10 adet kullanıcı görüntüleniyorsa database'e bağlanan, oradan değerleri alan ve belli html formatında table içine onları yayan tek bir tag yaratılabilir. Şöyle; <ceviz:listmember start="20" listcount="10"> Ceviz kullanıcıları </ceviz:listmember> İşte şuncacık kod parçası designer için databaseden 20. üyeden sonra olan 10 üyeyi alıp table'da basmaya yeter ve designer'ın bunun için kod yazmasına gerek yoktur. Designer'ın html ve sadece tag library'yi bilmesi yeterli olur. Struts - Html Tag Library struts-html. tld tag library ile JSP sayfalarında kullanılan tag'lere kısaca değineceğim. <html:html> sayfaya bir <html> tagı yayar. <html:errors/> Bu tag ise validasyonda oluşan hataları sayfaya basar. <html:form> Tag sayfaya bir form tagı yayar. <html:text property="isim"> Bu tag ile JSP sayfaya bir text field yayar. Diğer form elemanları isimlendirilirken de property attribute'si kullanılır. <htmlasword> Tag bir password alanı koyar <html:link> Bu tag <a> tagı ile bir hyperlink oluşturur. <html:checkbox> Bir checkbox koyar. <html:hidden> hidden form elementi yaratır. <html:textarea> bir text alanı koyar. <html:base/> Tag <base> tagını yaratır. Tag <head>' ın içinde yer alır. Kendi Tag Library'mizi yaratalım Kendi tagimizi yaratırken ve kullanırken şu koşullar gerekir; JSP'de kullanırken JSP'ye yarattığınız tagi kullanabilmek için kullanılacak taglibrary'i belirtmek gerekir. <%@ taglib uri="/WEB-INF/ceviz. tld" prefix="ceviz" %> İşte bu satırlarla ceviz adında bir tld'yi ceviz prefix'i ile kullanacağız bunu belirledik. Şimdi Tag Library'mize bir tag yaratalım ve ekleyelim. import javax. servlet. jsp. tagext. TagSupport; import javax. servlet. http. ; import javax. servlet. jsp. ; public class YildizSignature extends TagSupport { public int doStartTag throws JspException { try catch return SKIP_BODY; } public int doEndTag } Burada yeni bir tag yaratırken kullanılan class javax. servlet. jsp. tagext. TagSupport classıdır. Class JSP sayfalarında kullanılan tag'in start ve end tagına rastlanıldığında nasıl davranacağını belirleyeceğimiz doStartTag ve doEndTag isimli metotları içermektedir. Basitçe bir html kodu bastırıyoruz. Yarattığımız bu classı ceviz. tld'ye ekleyelim; Kod: <?xml version="1.0" encoding="ISO-8859-1" ?> <taglib> <tlibversion>1.0</tlibversion> <jspversion>1.1</jspversion> <shortname>Ceviz Tag Library</shortname> <info> Bu tag library'ye ve tag yarartmaya bir örnektir. </info> <tag> <name>YildizibSignature</name> <tagclass>YildizSignature</tagclass> <bodycontent>empty</bodycontent> </tag> </taglib> İşte görüldüğü gibi bir xml dosyasıyla bu yaratılan tag'ı belirttik.<taglib> elementinin içine yaratılan tagler <tag> elementiyle belirtilerek konurlar. Bir tag yarattık ve tag Library'ye koyduk şimdi de deneme yapalım. index. jsp'de yarattığınız taglib'i deklare edin; <%@ taglib uri="/WEB-INF/wardom. tld" prefix="wardom" %> sonrada <body> nin içinde; <wardom:bbberkeSignature/> Yazın JSP'yi kaydedin ve browserden isteyin. Şöyle görünmeli; Tıkla

Struts'a Giriş II Controller İçin Action Yaratmak ActionServlet'in applikasyonun Controller kısmına tekabül ettiğini söylemiştik. Yapılan her request bir Action'a karşılık gelir ve yapılan requestlerin hangi Action'a yönlendirileceğine bu class karar verir. İşimiz bu classla ve onun kullanması için bir Action class yaratacağız. Basitçe başka bir jsp'ye yönlendirme yapan bir Action yapacağız. bbberke/wardom. org bbberke/wardom. org bbberke/wardom. org Action classı org. apache. struts. action paketinde olup extend ederek sub-classlarını oluşturacağız. bbberke/wardom. org bbberke/wardom. org bbberke/wardom. org import javax. servlet. http. ; import org. apache. struts. action. ; import java.io. IOException; import java. servlet. ServletException; public class HelloAction extends Action { public ActionForward perform throws IOException, ServletException } Struts 1.0'da metod adı perform 'dur. Fakat 1.1 ve 1.2 için bu metodun yerine; public ActionForward execute throws Exception metodu kullanılıyor yukarı Struts versiyonları ile çalışırken dikkat edin. Class'ı derlemek için Servlet jar'ı ve Struts jar'ı classpath e eklemeyi unutmayın. Borland JBuilder kullanıyorsanız bunları yapmanıza gerek kalmıyor. New dediğinizde gelen diyalog kutusundan web sekmesine tıklayın ve Action class etiketine tıklayın. Yeni bir Action classı template örneğini yaratır. Sonra yukarıdakileri kopya edip derleyin. Derlenen classları WEB-INFclasses altında tutun. Bu directoryde birde ApplicationResources. properties adında bir başka önemli dosya durur. Bunu sonra anlatacağım. Struts-config. xml Dosyası Bu dosya bir xml dosyası olup Struts Controllerının kullandığı konfigürasyonu içerir. Yapılan her action'ın sonucunda hangi Action class'ı devreye girecek burada bildirilmelidir. <action-mappings></action-mappings> Bu elementin içinde her action'un haritası yer alır. Her hangi bir jsp'den yapılan requesting derlediğimiz bu Action'a yönlendirilmesi için; <action path="/HelloAction" type="HelloAction"> <forward name="hello" path="Hello. jsp"/> </action> olarak bir action elementi bloğu tanımlayıp <action-mappings> elementinin altına koyun ve kaydedin. Burada 'path' attributesi yapılan actionun adı , type ise hangi Action classı bu action'u işleyecek belirtilir . İçindeki forward elementi ise işlem mantığından sonra hangi jsp'ye yönlendirilecek onu belirler. Mesela Action classımızda; return mapping. findForward ; ile "hello" adıyla ilişkilendirilen bir jsp'ye forward ediyor. Controller bu forward'a karşılık gelen jsp'yi belirler ve View'e iletir. Hello. jsp Kurduğumuz bu basit yapıyı çalıştırmak için bir Hello. jsp adında bir jsp yapmamız lazım. İşte jsp'miz; <%@ page language="java" %> <%@ taglib uri="/ WEB-INF/struts-bean. tld" prefix="bean" %> <%@ taglib uri="/ WEB-INF/struts-html. tld" prefix="html" %> <html:html locale="true"> <head> <title><bean:message key="hello. title"/></title> <html:base/> </head> <body bgcolor="white"> <h3><bean:message key="hello. heading"/></h3> <p><bean:message key="hello. message"/></p> </body> </html:html> Bu jsp'ye request etmek için struts-blank. war extract edildiğinde gelen index. jsp'den bir link vereceğiz. index. jsp'yi açıp ve içine link ekleyip editleyeceğiz. Linkimiz şöyle olacak; <html:link page="/HelloAction. do">İlk Temas</html:link> görüldüğü üzere index. jsp Tomcat'ten istendiğinde daha sonra <a href="TestAction. do">...</a> tagını üretecektir. Bu ilginç tagler Struts ile birlikte gelen Struts Tag Library'nin içindeki taglerdir ve Tag Library ise Struts'ın View componentinin bir parçasıdır. Tag library'e ileride kısa bir giriş yapılacaktır. Dikkatinizi çekti mi HelloAction. do diye bir yer var linkte?Bu html kodunda <a> tagınada bu şekilde taşınır. Yani jsp'den jsp'ye artık direkt geçiş olmayacak. Struts'ın amacıda bu. Geçişler ve buna benzer operasyonlar Action classı forward edilecek jsp'yi belirleyerek yapacak. Daha sonra WEB-INF/classes/ApplicationResources. properties dosyasını açın. Bu dosyada bir kaç ekleme yapacağız. hello. title=Struts 1.0 hello. heading= Selam-ün aleyküm Struts hello. message=İşte struts karşınızda... Struts Model View ve controller yapısıyla Applicasyon geliştirmede kolaylık sağlayan bir yapıdır... Satırlarını ekleyin ve kaydedip çıkın. ApplicationResources. properties Bu dosya struts-bean. tld'deki taglar tarafından kullanılan bir dosyadır. Bizim jsp'mizde <title>,<h3> ve <p> taglarında içinde <bean:message key="hello. title"/> şeklinde kullanıldı. Burada properties dosyasına kaydettiğiniz key ile bu değerler tag içindeki key attributesinde aynı key ile belirtilerek çağrılır ve basılırlar. Kullanılan bu dosya web. xml dosyasından konfigüre edilir. Web. xml dosyası ApplicationResources dosyası <servlet> . . . <init-param> <param-name>application</param-name> <param-value>ApplicationResources</param-value> </init-param> . . . </servlet> olarak yer alır ve konfigüre edilir. İsterseniz bu dosyayı classes altında klasörlere koyabilirsiniz. Fakat properties dosyasının nerde duracağı konusunda değişiklik yaptığınızda mutlaka burayı konfigüre edip belirtin. Örn:<param-value>yildiz. test. struts. ApplicationResources </param-value> gibi... Yada ismini değiştirmeniz ve kendiniz bir isim vermeniz mümkündür. Verdiğiniz dosya adını da burada aynı şekilde belirtip konfifüre edin. Yapılan actionların . do şeklinde olacağını söylemiştim. İsterseniz yine web. xml'i düzenleyerek istediğiniz türe değiştirmeniz de mümkündür. <!-- Standard Action Servlet Mapping --> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern> . do</url-pattern> </servlet-mapping> elementinde belirtildiği gibi Actionların . do tipinde olacağı söyleniyor. Bunu; <!-- Standard Action Servlet Mapping --> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern> . yap</url-pattern> </servlet-mapping> şeklinde düzenleyebilirsiniz. Daha sonra ise link verirkende yeni şekliyle vereceksiniz. Örn: HelloAction. yap gibi. Herşeyi hazırladık sıra sadece test etmeye geldi. Önce index. jsp'yi açın. "İlk Temas" Linkine tıklayın. Şöyle bir sayfa gelmeli; Tıkla Çok güzel. Not:Struts'da bir değişiklik yaptığınızda, Örneğin, herhangi bir jsp'ye bişeyler eklemek, config dosyalarıyla oynamak gibi durumlarda zaman-zaman Tomcati restart etmeniz gerekebilir. Çoğu kez ctrl+F5 işe yaramıyor. Hatta bazen work directory'sinin altında tutulan cache'i silmeniz dahi gerekebilir. Çünkü yapılan değişikliği Tomcat algılayamıyor ve bu operasyonlara ihtiyaç duyulabiliyor. Haberiniz olsun.

Struts'a Giriş III Struts İle Form Bilgilerinin Validasyonunu sağlamak Şimdiki dersimizde bir login formundan gelen bilgilerin validasyonu yapılacaktır. Basit bir şekilde form alanlarındaki bölgelerin boş olmamasını kontrol eden bir uygulama yapacağız. ActionForm Class'ı Bu classlar Struts paketindeki org. apache. struts. action. ActionForm classını extend eden java-bean classlarıdır. Bu classta formdan gönderilen her property yani değer, aynı String değişkeni ile classta tutulur ve işlenir. Örneğin <input type=text name="username"> olan bir form elemanının adı ve gönderilen değeri aynı String değişkeni ile ActionForm classımızda temsil edilir. ActionForm classı daha çok View componentine yakınlık gösterir. Aslında yapılan bir requesti Action'a gitmeden önce ele alan bir firewall gibi düşünülebilir. Örneğimize geçelim; Söylendiği gibi ActionForm'da sadece alanların boş olmaması gereken durumda geri yönlendirme yapacak bir uygulama yapacağız. İşte ActionFrom örneğimiz; import javax. servlet. http. HttpServletRequest; import org. apache. struts. action. ; public class LoginForm extends ActionForm { private String username=null; private String password=null; public void setUsername public String getUsername public void setPassword public String getPassword public void reset public ActionErrors validate { ActionErrors errors = new ActionErrors ; if( getUsername null || getUsername . length < 1 ) if( getPassword null || getPassword . length < 1 ) return errors; } } Classın validate metodu sayesinde gelen requesti işliyoruz.<action-mappings> de Action'a gitmeden önce gelen request'ten username ve password değerleri alınır ve classtaki değişkenlerine atanır. validate metoduyla birlikte üretilen hatalar varsa geri döndürülür. Hataları bir Hashmap'te tutan class ActionErrors classıdır. Classa bir error eklemek için add metodu kullanılır. Daha sonra da bir ActionError classı örneği yaratılır ve konur. ActionError classı kurucuda bir String alır bu String oluşan hatanın ApplicationResources dosyasında hangi key ile tutulduğunu belirten bir String'dir. Örnekte "error. username. required" ve "error. password. required" adlı iki key ile tanımlanacak değerde tutulacaktır hatalar. Şimdi sıra ApplicationResources dosyasında ve bu keyler ile alınacak olan değerleri yaratmada. ApplicationResources dosyasını açın ve şu satırları ekleyin, kaydedin, çıkın; errors. header=<h3><font color="red">Validasyon Hataları</font></h3>Önce, aşağıdaki hataları doğrulayınız...<ul> errors. footer=</ul><hr> error. username. required=<li>Kullanıcı adı girilmemiş...</li> error. password. required=<li>Şifre girilmemiş...</li> Burada ilk iki key "errors. header" ve "errors. footer" görülmektedir. Bunlar Hata başlığı ve hata sonu keyleridir. Sonraki iki satırda ise bunlar bizim boş gönderilen durumda oluşturulacak hata mesajlarımız. Bu iki key aynı zamanda ActionError clasının kullandığı key ve değerlerdir. Sırada Login. jsp'nin hazırlanmasında işte Login. jsp; <%@ taglib uri="/tags/struts-bean. tld" prefix="bean" %> <%@ taglib uri="/tags/struts-html. tld" prefix="html" %> <html:html locale="true"> <head> <title><bean:message key="login. title"/></title> <html:base/> </head> <body bgcolor="white"> <html:form action="/Login"> <html:errors/> <table> <tr> <td align="center" colspan="2"> <font size="4">Kullanıcı Girişi</font> </tr> <tr> <td align="right"> Kullanıcı Adı </td> <td align="left"> <html:text property="username" size="30" maxlength="30"/> </td> </tr> <tr> <td align="right"> Şifre </td> <td align="left"> <html:text property="password" size="30" maxlength="30"/> </td> </tr> <tr> <td align="right"> <html:submit>Login</html:submit> </td> <td> <html:reset>Temizle</html:reset> </td> </tr> </table> </html:form> </body> </html:html> Login. jsp'miz hazır. from elementinde gördüğünüz üzere Login diye bir action'a gidecek bu form. Şimdide LoginAction classımızı yaratalım. Bu class yine basit olarak hiç bişey yapmadan sadece success. jsp'ye yönlendiriyor. request bu class tarafından işlenmeden ActionForm'ca işlendiğini unutmayın. İşte classımız; import javax. servlet. http. ; import org. apache. struts. action. ; import java.io. IOException; import java. servlet. ServletException; public class LoginAction extends Action { public ActionForward perform throws IOException, ServletException } Class görüldüğü üzere success. jsp'ye forward ediyor. Bunun için success. jsp'miz ; <%@ taglib uri="/WEB-INF/struts-html. tld" prefix="html" %> <html:html locale="true"> <head> <title>Giriş başarılı<title> <html:base/> </head> <body bgcolor="white"> <font color="red">Girdiniz!!!</font> </body> </html:html> şeklindedir. En sonunda sıra struts-config dosyamızı düzenlemeye geldi. Dosyayı açın. <action- mappings>'e bir action haritalaması yapmamız lazım. Elementin içine şöyle yazın; <action path="/Login" type="LoginAction" name="LoginForm" scope="request" validate="true" input="/Login. jsp"> <forward name="success" path="/success. jsp"/> </action> yaratılan actionu haritaladık. Birde bir form-bean kullanılıyorsa onu da eklemeliyiz. Bizim applikasyonda kullanılan bir de LoginForm bean'imiz vardı. Bunun için yine struts-config. xml'de <form-beans> elementine ekleme yapacağız. Elementi bulup içine; <form-bean name="LoginForm" type="LoginForm"/> Şeklinde ekleme yapın ve kaydedip çıkın. Ufak bir detay daha kaldı;Login. jsp'de <title> elementi içinde kullanılan <bean:message> elementi 'login. title' key'i ile ApplicationResources dosyasından bir değer kullanmaktadır. Bu değeri de dosyaya ekleyin mesela; login. title=Kullanıcı adı ve şifre giriniz. gibi... sonra kaydedin ve çıkın. Sonra Login. jsp'yi index. jsp'de vereceğiniz bir linkle çağırın yada browserden kendiniz girerek çağırın. Tıkla Bir alanın boş bırakılması durumunda aşağıdaki gibi bir sonuç elde edeceksiniz Tıkla Tüm alanlar doldurulduğunda yönlendirilmiş olacaksınız.

kardaş bide java programı koysaydın tam süper olacaktı.

Buraya kadar olan dökümanların derlemesi bana aittir. Bilgiler alıntıdır. KaYNakgösterilmiştir. Bu konu üzerinde durduğum yerler. · Java Nedir? · JAVA''ya genel bir bakış · Struts'a Giriş I · Struts'a Giriş II · Struts'a Giriş III · Tag Library'e Giriş · Struts Sisteminin Kurulumu · Tomcat'le Çalışmak · Apache Ant Bir bbberke dökümanıdırİyi forumlamalar.

Struts'a Giriş I, II, III Struts'a Giriş Struts Nedir? Struts, application geliştirmek için kullanılan MVC mimarisinin bir uygulamasıdır. Peki MVC nedir?MVC bir applikasyonu Model, View ve Controller olmak üzere componentlere bölme operasyonudur. Modüler olarak applikasyonun bu şekilde componentlere bölünmesi uygulama geliştirmede çok önemlidir. Programcı ile designer'ın işlerini birbirinden ayırmakta, kolaylık ve geliştirilen applikasyon için iş birliğini ve hızı sağlar. Her componentin kendi iş sahası vardır. Model işlem mantığını yürüten componenttir. Örneğin; authentication işlemleri, database'le sorgu işlemleri özetle bilgi işlem mantığı Model'in görev sahasındadır. View kullanıcıya sunulan arayüz componentidir. Bunlar genellikle jsp sayfalarıdır. Örneğin;kullanıcıdan bilgi almak için kullanılan bir Form olabilir. Controller: Struts yapısında her request bir Action'a karşılık gelir. Controller Model ve View arasında çalışan bir arabirimdir. View'den yapılan her requesti yakalar ve Model'den bilgi işlem mantığını çalıştırıp tekrar View'de jsp için gerekli olan parametreleri üretir ve View Componentine geri iletir. View de bunu alır ve jsp'yi üretip gösterir. Struts'da en önemli class ActionServlet classıdır. Bu Struts Applicationunun göbeğidir ve Controller Componentine karşılık gelir. Struts Kurulumu ve gereksinimler Ön gereksinimler 1-JDK. Tomcat için ve geliştireceğimiz classları derlemek için gerekli. Eğer elinizde bir ide varsa onu da kullanabilirsiniz. Fakat Tomcati çalıştırmak için mutlaka bir JDK lazım. JDK'yı java. sun.com'dan elde edebilirsiniz. Söylemeye gerek yoktur sanırım. 2-Tomcat. Tomcat'i Apache'nin sitesinden indirebilirsiniz. www.apache.org 3-Servlet jar'ı bu jar classları derlerken gerekli olacak ve Tomcat ile birlikte gelir.common/lib altında bulabilirsiniz. Struts'ın kurulumu Öncelikle Tomcati bulup indirin, kurun ve çalıştırın. Bunun için bir önceki dersi okumanızı tavsiye ederim. Struts için tekrar www.apache.org adresine giderek indirebilirsiniz. Benim uygulamalarda kullandığım Borland JBuilder'ın thirdparty ile gelen Struts'ı idi ve 1.0 versiyonunu kullandım. Struts'ı indirdiniz zip'i açtınız. Struts'ı kurmak için yapacağınız sadece şu; struts-blank. war dosyasını Tomcat'i kurduğunuz klasörde webapps klasörünün altına kopyalayıp yapıştırın, bitti. struts-blank. war bir arşiv dosyasıdır ve kullandığınız JSP-Servlet Container'i bu arşiv dosyasını kendisi otomatik açar ve deploy eder. Bu dosya bizim yeni Struts uygulamaları geliştirmek için oluşturulmuş bir boş Struts applicationudur ve istediğiniz şekilde yeni bir isimlendirme yapıp kopyalamanız mümkündür.. Struts 'ı açtığınız ziple birlikte gelen başka war dosyaları da vardır. Bunlardan struts-do entation ve struts-example dosyalarını da alıp aynı şekilde kopyalayın. İşimiz struts-blank ile olduğu halde bu iki dosya açıldığında birincisi struts için javadoc ve dokümantasyonu sağlar. İkinci dosya ise örnek bir struts uygulaması içeriyor. Bunlarda struts denemeleri yaparken size yararlı olacaktır. Struts yapısını kurduk fakat bu yapıyı Tomcatin tanıması için Tomcatin konfigürasyon dosyasında bir düzenleme yapmalısınız. Bunun için webapps'ın struts-blank klasörü için relative context oluşturun."path" Attribute değerini "struts-test" olarak atayın .

JAVA''ya genel bir bakış Java 1991'de Sun Microsystems'de James Gosling, Patrick Naughton, Chris Warth, Ed Frank ve Mike Sheridan tarafından düşünüldü. İlk çalışan versiyonunu geliştirmek tam 18 ay sürdü.1995'te JAVA adını alan bu dil daha önceleri OAK olarak biliniyordu. Java dili şu anda Enterprise uygulamalardan, Mobil uygulamalara kadar bir çok alanda yoğun olarak kullanılmaktadır. Java'nın en önemli özelliği platform bağımsız bir dil olmasıdır, yani tamamen aynı kodu yazarak Linux ortamında da, Windows ortamında da aynı sonucu alabiliriz. JVM - Java Virtual Machine Java ile yazılan kaynak kodlar sanal bir işlemcinin anlayacağı makine koduna çevrilir, fakat bu kod bildiğimiz gerçek makine kodu olmadığından bu koda byte code denir. Yani yazılan kaynak kod derlenerek bytecode'a dönüştürülür. Bu bytecode'lar programın çalışması esnasında Java Sanal Makinesi tarafından gerçek makine koduna dönüştürülür. Sonuç olarak Java dili ile yazılan kaynak kodlar. java uzantılı dosyalarda saklanır. javac derleyicisi bu kaynak kodları. class uzantılı dosyalarda saklanan bytecode'a çevirir. Ve bu bytecode'lar java yorumlayıcısı tarafından çalıştırılır. JRE ve SDK JRE java kodlarını çalıştıran sistemdir. Bir makinede bir Java programının çalıştırılabilmesi için JRE yüklenmelidir. Fakat JRE bir derleyici barındırmaz sadece derlenmiş programları çalıştırır. Dolayısıyla Java kodlarının derlenebilmesi için sisteme SDK yüklenmelidir. SDK içerisinde JRE'yi de barındırır yani SDK yüklendikten sonra tekrar bir JRE'ye ihtiyaç yoktur. Evet bu kadar teori yeter, şimdi küçük bir java programı yazalım. Öncelikle Download adresinde Windows için SDK'yı indirin. SDK C:j2sdk1.4.2_01 dizinine kurulacaktır. Şimdi Java kaynak kodumuzu oluşturalım. . class first { public static void main } Yazdığınız kaynak kodu first. java şeklinde C:j2sdk1.4.2_01bin klasörünün altına kaydedin. Eğer programı first. java dışında bir isimle kaydederseniz programınız derlenemeyecektir. Çünkü kaynak kodun ismi main fonksiyonun içinde bulunduğu class'ın ismi ile aynı olmalıdır. Ayrıca Java C gibi büyük-küçük harf duyarlı bir dildir buna da dikkat etmelisiniz. Daha sonra Windows Command Prompt'u çalıştırın ve C:j2sdk1.4.2_01bin dizinine geçin ve javac first. java şeklinde kaynak kodunuzu derleyin. Kaynak kodu derledikten sonra dir ile daha önce belirttiğim gibi. class uzantılı bir dosya oluştuğunu görebilirsiniz. java first komutu ile programınızı çalıştırdığınızda ekrana 'İlk java programım...' yazacaktır.

Nasıl java programı koyim? Kod derlemesini mi? Yoqsa orjinal mi orjianale gerek yoq zaten sitesi herkes tarafından