Apache Tomcat Kurulumu ve Kullanımı

Apache Tomcat, Java Server Pages yani JSP sayfalarımızın çalışması için bilgisayarımıza kurduğumuz bir server diyebiliriz. Apache Tomcat gibi JSP sayflarımızın çalışması için başka server ürünleri mevcut. Ama Apache Tomcat’i önermemin sebeblerinden biriside Netbeans’da projemizi çalıştırdığımız zaman aktif olması ve Netbeans’ta ki projemizi kapatınca kendini kapatması. Diğer server tiplerinde bu özellik var mı bilmiyorum. Sistemde arkaplan da çalışmaması gerçekten çok hoş.

Apache Tomcat Kurulumu

  1. Öncelikle yapmamız gereken Apache Tomcat’i bilgisayarımıza indirmek. Bunun için http://tomcat.apache.org/ sitesinde Tomcat’in en son sürümünü indiriyoruz.
  2. Zipli dosyayı bilgisayarımıza indirdikten sonra zipten çıkaralım ve C:\ dizinimize kopyalayalım.
  3. Kurulum aşaması bu kadar.

Apache Tomcat Ayarları

Tomcat’imize Java’yı tanıtmamız gerekmekte. Bunun için Ortam değişkenlerimizi tanıtmamız gerekiyor.

  1. Bilgisayarım’ a sağ tıklayıp özellikler dedikten sonra Gelişmiş sekmesinden Ortam Değişkenleri butonuna tıklıyoruz.
  2. kullanıcı değişkenleri altında bulunan Yeni butonuna tıklıyoruz ve karşımıza gelen Değişken adına JAVA_HOME, değişken değerine de jdk adresimizi yani C:\ProgramFiles (x86) \Java\jdk1.6.0_23 yazıyoruz ve tamam diyoruz.  (Bu yol bilgisayarınızın türüne göre değişebilir. 32-64 bit farklılıkları olabilir.)
  3. Ardından Sistem Değişkenlerinde Path i bulup düzenle butonuna tıklıyoruz. Daha sonra değişken değeri satırının başına C:\ProgramFiles (x86) \Java\jdk1.6.0_23bin; adresini ekliyoruz.

Ortam Değişkenlerinin Kontrolünün Yapılması

Bu yolları ekledikten sonra doğruluğundan emin olmamız gerekmekte. Bu yolların gerçekten Java dizinine doğru şekilde eklediğimizden emin olmak için yapmamız gerekenler ise şunlar.

  1. Başlat->Çalıştır->cmd yazıp Enter tuşuna basalım.
  2. Karşımıza çıkan komut sisteminde ise C:\> echo%java_home% yazdıktan sonra Java yolunu doğru veriyorsa sorunsuz bir şekilde tanıttık demektir.

Apache Tomcat’in Çalıştırılması

Tomcat’i kurduk. Ortam değişkenlerini ayarladık. Buraya kadar bir sorun yok ise Sıra server’ımızı çalıştırmaya geldi.

  1. C:\tomcat\bin\startup.bat dosyasını çalıştıralım.
  2. Ardından herhangi bir internet tarayıcımızın adres çubuğuna http://localhost:8080/ yazalım ve Enter’a basalım.
  3. Karşınıza Apache Tomcat sayfası geliyorsa sorunsuz bir şekilde server’ınızı kurdunuz demektir.

JAVA SERVER PAGE(JSP)-1

Java Server Pages Nedir?
Web sayfalarında Java dilini kullanarak dinamik web sayfaları oluşturmamızı sağlayan bir Java teknolojisidir. Jsp (Java Server Page) Html dili içine yazılır ve özel taglar kullanarak ” <%  . . . . . .  %> ” yazılır.
JSP,  Servlet uzantısıdır. Html içerisine yazdığımız JSP kodları sunucuda Servlet’e çevirilir. JSP’ler Java Beans’ler le çalışır ve daha rahat bir geliştirme imkanı sunar.

Eğer Java biliyorsanız Html içerisine zorlanmadan JSP kodlayabilirsiniz.

JSP Platform bağımsızdır. Java desteği olan her yerde rahatlıkla çalışabilir.

Başka bir güzel yanı ise Java Class’ları ile birlikte çalışabilmektedir.

JSP’nin Çalıştığı Yer Uygulama Sunucusudur.

JSP’de yazdığınız kodların çalışması için Web Sunucularına değil Uygulama Sunucu’suna atmanız gerekir. JSP bir Java uygulamasıdır. Bu yüzden JSP’nin çalışması için gerekli olan Uygulama Sunucu’sudur. Apache Tomcat bir uygulama sunucusudur.

Java Web Frameworkleri

Bu yazımızda java web frameworkü nedir, çeşitleri nelerdir, bunlardan bahsedeceğim.

Web Uygulamaları:

Web uygulamaları sunucular üzerinden çalışıp, kullanıcılardan aldığı verileri işleyerek, depolayan ve kullanıcıya gerekli sonuçları döndüren yapılardır. Web uygulamaları genelde kullanıcılar ile görsel materyeller ile iletişim kurarlar.

Biz yazımızda java web frameworklerinden bahsedeceğimiz için, java web uygulamaları hakkında konuşalım. Java şu anda web uygulamalarında gerçekten başarılı ve güçlüdür. Çünkü ortam bağımsızlığı bunun en büyük etkenidir. Sunuculara jvm kurulması ile java için bütün altyapı sağlanmış olur. Bunun dışında yapılması gereken birşey yoktur.

Java web uygulamaları direk olarak geliştirilmez, genellikle bir frameworkten yararlanılır.

Frameworkler, daha önceki yazılarımızda da bahsettiğimiz gibi 3 yapıdan oluşur. Bunlar model, view, controller yapılarıdır. Bu yapılar sayesinde programlamada katmanlı bir yapı kullanılır. Bu üç kelimenin baş harflerinden oluşan mvc bu yapılar için kullanılır.

  • Model = Database ile uygulama arasında ki bağlantıyı sağlayan bölümdür. Bu bölüm bütün verinin tutulduğu kısımdır.
  • View = Türkçedeki karşılığı ile görünümdür. Yani verilerin kullanıcıya sunulduğu bölümdür. Kullanıcıların uygulamaları açtığında(web sitesi veya masaüstü uygulaması farketmez.) karşılaştıkları sunum bölümüdür. Bunlar formlar butonlar vs dir.
  • Controller = Model den gelen verileri işleyerek View kısmına yollar, verilerin işlenmesini sağlayan bölümdür. Yani model ile view arasındaki bağlantıyı sağlar.

Peki bu yapılara java teknolojilerinde birer örnek verelim.

  • Model: java bean
  • View : JSP
  • Controller: Servlet

Frameworklerin listesine bu adresten ulaşabilirsiniz. Başlıcaları ise JSF, Seam, Spring, Struts, JSP, Servlet …

JSP (JavaServer Pages)

JSP, bir java sunucusu üzerinde çalışan HTML, CSS, Javascript çıktısı üretebilen, Java gösterim teknolojisi olarak tanımlanabilir. Jsp sayfaları aslında html dosyaları için script olarak yazılmış Java kodlarıdır. JSP içinde doğrudan java kodu yazmak yerine, kodların JSP içine dahil edilmesi tavsiyedir. Yani JSP içine veritabanı bağlantıları için java kodu yazmak yerine, bu kodları bir java class’ı içine yazıp, JSP içinden bu class’ın çağırılması tavsiye edilir.

JSP tek kullanımında mvc yapısını desteklemez. Başka uygulamalarda view olarak jsp kullanılır. Genelde JSF uygulamalarının view kısmı JSP dir.

Bir JSP kodu sunucudan ilk defa çağırıldığında veya web sunucu ilk defa başlatıldığında, JSP kodu HttpServlet sınıfından türetilerek bir class olarak oluşturulur ve sunucunun yaşan süresi boyunca çalışmaya devam eder.

Servlet

Servlet, Java application programming interface (API), sunucu üzerinde çalışan, dinamik içerik üreten bir web bileşenidir. Aslında sunucu tarafından çağrılan derlenmiş java nesneleridir. HttpServlet, servlet’e örnek olarak verilebilir. Servletler, Java’nin, CGI (Common Gateway Interface) programlamasına alternatifi olarak oluşturulmuşlardır. Web sunucusu ile diğer ortakat uygulamaları ve veri tabanı arasında yer alırlar.

HTTP ile gelen requestler uygulama sunucusu üzerinde çalışan Servlet Engine tarafından incelenir. Bu incelemenin sonucu ilgili servleti çağırır. Çalışan servletlerin sonuçları yine servlet engine tarafından değerlendirilir ve HTTP protokol response dönüştürülür.

Örnekle açıklayacak olursak, bir Servlet ilk defa çağırıldığında veya Tomcat gibi web sunucu ilk defa çalıştırıldığında, Servlet’in bir örneği (instance) oluşturulur ve sunucunun yaşam süresi boyunca hazırda bekler. Eğer o servlet için bir istek olursa, yanıt verir. Servlet’lere istekler HttpServletRequest arayüzünden gelir, servlet’in cevabı ise HttpServletResponse arayüzünden döndürülür.

Bu sayede uzaktaki bir java nesnesini HTTP aracılığı ile çağırabiliyoruz.

JSF (JavaServer Faces)

JSF ise Servlet ve JSP’den biraz daha farklı olarak, arka planda Servlet ve ön yüzde JSP etiketlerini kullanabilen, bileşen temelli bir MVC çatısıdır. Arka plan kodunu, tasarımı ve gösterimi ayrı ayrı yapabilmek için geliştirilmiş bir frameworkdur. Kendi içinde hazır kütüphaneleri vardır ve siz ilgili kütüphaneleri ekleyip, SJF’ye uygun etiketler ile geliştirmenizi yaparsınız. JSF gibi çatıları kullanmanın avantajı, ihtiyaç duyabileceğiniz bazı bileşenlerin daha önceden hazır paketler halinde sunulmasıdır. Örneğin geliştirdiğiniz uygulamada veri doğrulaması yapmak istiyorsanız, bunun için JSF içindeki hazır yapıyı kullanabilirsiniz. JSF, temel olarkak FacesServlet sınıfını kullanır.

JSF Ajax desteği de sağlar. Bu sayede popüler bir web uygulama çatısıdır.

Spring

Bu framework hem kurumsal hem standart uygulamalarda tercih edilir. Java nın güçlü taraflarından olan EJB yapısına alternatif olarak spring ORM, Annotation, Dependency Injection gibi özellikler sunar.

En önemli avantajlarından birisi de  hızlı test edilebilmesidir. Netbeans de Spring desteği vardır.

Web uygulamaları geliştirilirken kullanılan terimlerden bilinmesi gereken bir kaçından bahsedelim. Bunlar POJO ve JavaBean dir.

Pojo: Düz java nesneleridir. Basit java nesnelerini tanımlar. Pojo nun sahip olması gereken bazı özellikler vardır.

  • Sadece üye değişkenler ve bunlara ait olan set get metotları bulunabilir.
  • Bu sınıflar herhangi bir sınıfı extend edemezler.
  • Bu sınıflar herhangi bir arayüzü implement edemezler.
  • Bu sınıflar annotation içeremezler

Bu sınıflar herhanbi bir arayüze ve dipnota ihtiyaç duymadıkları için  başka framework lerde kullanılabilir.

JavaBean: JavaBean aslında Pojo nun daha özelleşmiş halidir. Özellikleri ise

  • Mutlaka constructor içermelidir.
  • Bu sınıflar mutlaka Serializable arayüzünü implement etmelidirler
  • Ayrıca üye değişkenlere getter ve setter ile ulaşmalıdırlar.

Bu yazımızda java framework ve bazı teknik detaylardan bahsettik. Daha sonraki yazılarımızda Spring ve JSF üzerinde örneklere yer vereceğiz.

Java da Nesne Yönelimli Tasarım Kavramları

Kısaca terimlerden bahsetmek gerekirse,

Inheritence: Yani kalıtım, nesne yönelimli programlamanın temelidir denebilir. Bir class’ın içerisinde barındırdığı özelliklerini, kendisini kalıtım yoluyla extend eden class’a aktarmasıdır.

Abstract Method: Bir class ta bulunan abstract olarak belirtilmiş methodun içeriğinin, bu class’ı extend eden class tarafından implement edilecek olmasıdır.

Abstract Class: Bu class’ı kullanabilmek için mutlaka başka bir class tarafından extend edilmesi gerekmektedir.

Composition: Bir class’ın başka bir class içerisinde attribute  olarak bulunmasıdır.

Polymorphism: Çok biçimlilik anlamına gelmektedir. Bir metodun override edilmesi veya  overload edilmesi ile oluşan yapılara denir.

Inteface: Kendisini extend edecek class’a hangi metodları implement edeceğini belirten ve bu yolda zorlayan yapıdır.

Şimi bu kavramları örnek üzerinde inceleyelim. Yapacağımız uygulama sipariş sistemi olacak.

Kullanacağımız ana class’larımız: Müsteri, Masa, Menu dur. Ayrıca, OdemeSistemi adında Interface, Icecek ve Yiyecek adında alt class’lar bulunmaktadır.

Öncelikle Müsteri class’ımız OdemeSıstemi Interface’ini implement edecek ve bu sayede OdemeSistemi’nde bulunan metodlar zoraki olarak Musteri içerisinde implement edilecek. Masa class’ımızın içinde Musteri attribute’u bulunacak. Ayrıca Menu class’ından Icecek ve Yiyecek class’ları extend edilecek.

Kısaca yapılardan bahsedip uygulamayı paylaşalım.

Musteri class’ı OdemeSistemi interface’ini implement etmektedir. Masa class’ının içinde Musteri class’ı bulunması bir composition dur. Menu class’ından Icecek ve Yiyecek extend edilmesi inheritence’e örnektir. Ayırca Menu class’ı abstract’tır.

Java nedir nerelerde kullanılır java nasıl kullanılır?

Java Sun Microsystems firması tarafından geliştirilmiş olan üst seviye bir programlama dilidir.

İlk adı OAK olan Java aslında bilgisayarlar değil, set üstü araçlar (WebTV gibi) veya avuç içi cihazlar (PDA’ler gibi) için hazırlanmıştı. OAK 1995 yılında başarısız olunca Sun firması bu programlama dilinin adını Java olaak değiştirdi ve Internet üzerinde popüler bir programlama dili haline getirmeye çalıştı.
Java, C++ dili gibi nesne yönelimli bir programlama dilidir ancak bu dile göre çok daha sadeleştirilmiştir. Soyadı .java olan Java programlarının çalışıtırılabilir hale getirildiğinde soyadları .class olur ve Java desteği olan herhangi bir web tarayıcısı ile çalıştırılabilirler. Java programları çalıştırıldığı işletim sisteminden
hemen hemen bağımsızdır çünkü bu programlar için gerekli destek hemen hemen tüm platformlarda (UNIX, Macintosh OS ve Windows gibi)verilmektedir.

Java özellikle World Wide Web üzerine uygulama geliştirmek isteyenlerce çok ercih edilmektedir. Java applet adı verilen küçük Java uygulamaları Java-uyumlu Web tarayıcıları (örneğin Netscape Navigator veya Microsoft Internet Explorer) ile ekranda izlenebilir.