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



Benzer belgeler
Üst Düzey Programlama

Üst Düzey Programlama

Client Server Database

Üst Düzey Programlama

Java EE 5 Teknolojileri Jboss Seam

JavaServerFaces. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4

Öğr. Gör. Serkan AKSU 1

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

ÖZGÜR YAZILIMLAR İLE J2EE

Üst Düzey Programlama

JBoss Seam Next Generation Integration Framework

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

Tekir (Ön Muhasebe Yazılımı)

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

Basit bir web uygulaması


ASP.NET TEMELLERİ. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

Spring Framework Eğitimi

Mobil Uygulama Geliştirme Yaklaşımları, Web Tabanlı Mobil Uygulama Çatıları. Burak USGURLU

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

BMT 202 Web Tasarımı Bahar Dönemi. Yük. Müh. Köksal GÜNDOĞDU 1

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

AJAX nedir? AJAX nasıl çalışır? AJAX. Tahir Emre KALAYCI. Sunucu Yazılım Teknolojileri

Java. Hakkımızda. Java Eğitimi

.com. Kurumsal Java. Özcan Acar com

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

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

Spring Giriş Eğitimi

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

Java Programlama Giriş

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

State Yönetimi. Bir web sayfası ile sunucu arasındaki etkileşim ;

1. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

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

PHP 1. Hafta 1. Sunum

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

Google Chrome Kullanıyorsanız; Microsoft Internet Explorer Kullanıyorsanız;

.com. Özcan Acar 2009 Kurumsal Java.com

YZM 3215 İleri Web Programlama

ClientAceDA Bağlantısı. ClientAce DA bağlantısı, Visual Basic.NET veya C# programcılarının rahatlıkla. serverlarla bağlantı kurabilen

PostgreSQL ve JBoss ile Java Kurumsal Çözümler. Nicolai Tufar

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

Cluster i Linux'ta Kümeleme Özgür Yazılım ve Açık Kaynak G 2006 Ali Erdinç Köroğlu

WEB FORMLARI. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

İNTERNET PROGRAMLAMA II. Tanımlar

2-Hafta Temel İşlemler

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

Kaynak Kod Güvenliği Bir Güvensiz API Örneği

MODSECURITY DENETİM KAYITLARINI ANLAMAK. Gökhan Alkan,

BATMAN ÜNİVERSİTESİ KÜTÜPHANE VERİTABANLARINA KAMPÜS DIŞINDAN ERİŞİM REHBERİ

8. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Üst Düzey Programlama

KANTAR UYGULAMASI Kurulum Kılavuzu

PROGRAMLAMA DERSİ 1. İNTERNET

TeamBase5 BELEDİYE İLETİŞİM MERKEZİ SIEMENS

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 4 MasterPage

1.Mailbox Server Role:

Özgür Yazılımlarla Web Programlama. Özlem Özgöbek

WebSphere Application Server extended Deployment

İnternet Programcılığı Öğr. Gör. Serkan AKSU Statik ve Dinamik Web Siteleri. Dinamik Web Sitesi Nedir?

C# nedir,.net Framework nedir?

JBoss Seam. Melih Sakarya

Java ve Linux. Bora Güngören Portakal Teknoloji Akademik Bilişim

API geliştiricileri. Web server ile yapılan entegrasyonun neticeleri. API Dokumantasyonu

PHP ile İnternet Programlama

ASP.NET ile Bir Web Sitesi Oluşturma

BAŞARIM ÖLÇÜTLERİ 1. ASP.NET MVC nin kullanım alanlarını sıralar. 2. ASP.NET MVC çalışma prensibini örneklerle açıklar.

Compiere Açık kodlu ERP + CRM yazılımı. Hüseyin Ergün Önsel Armağan Serkan Demir

COĞRAFİ BİLGİ SİSTEMLERİ SERVER MİMARİSİ SERVER UYGULAMA GELİŞTİRME EĞİTİMİ

İNTERNET PROGRAMCILIĞI - II

JAVASCRIPT JAVASCRIPT DİLİ

1. MİCROSOFT SQL SERVER 2014'E GİRİŞ

Algorithm of Your Life. AJAX ve...

JENNIFER V5 KULLANMANIN

Oluşturmak istediğimiz OU ye bir isim veriyoruz. Name kısmına ISTANBUL yazıyoruz,

Disk tabanlı bir çözümdür ve bu yapısından dolayı kullanılması kolaydır. Ayrıca hızlı bir şekilde yedekleme ve geri dönüş sağlar.

1.PROGRAMLAMAYA GİRİŞ

Altuğ B. Altıntaş

LOGO İş Zekası çözümü ile kurumsal raporlama ve analizler. Cem Yılmaz Genel Müdür LOGOBI Yazılım

1. Bölüm Spring'e Giriş

Intercepting Filter Tasarım Şablonu KurumsalJava.com

Business Delegate Tasarım Şablonu KurumsalJava.com

Üst Düzey Programlama

Exchange Server Kurulumu

solid; BORDER-LEFT: #1F9FFF 0px solid; BORDER-RIGHT: #1F9FFF 0px solid; BORDER-TOP: #1F9FFF 0px solid; COLOR: #1F9FFF; FONT-FAMILY: Trebuschet MS;

Web Portal Uygulamaları Karşılaştırması

Üst Düzey Programlama

Google Search API ile ajax arama

1 / 5. Mehmet Alper Şen. Kıdemli Yazılım Uzmanı. İletişim Bilgileri

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Google Site Araması Kuruluşunuz İçin Google Web Sitesi Araması

YZM 3215 İleri Web Programlama

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

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

WEB TASARIMINDA TEMEL KAVRAMLAR

Transkript:

ÖN BİLGİ Servlet Dinamik içerik üreten bir Java Web bileşenidir. Web teknolojilerinin temelinde bulunur. JSP ve JSF hala Servlet'i kullanır. Bir Servlet, her yönüyle, herşeyden önce, bir Java nesnesidir. Yazdığınız bir Java Servlet sınıfı, Java derleyicisi tarafından, platformdan bağımsız olan Java bayt koduna çevirilir ve bir Servlet Engine (Motoru) tarafından çalıştırılır. 1. Kullanıcı web tarayıcısından ulaşmak istediği sayfayı belirtir ve bu bilgiyi sunucuya gönderir ya da bir sayfada bulunan web form bilgilerini doldurur ve gönderme tuşuna tıklar. 2. Web sunucusu kullanıcı tarafından gelen bu http yada başka biçimdeki isteği(request) alır. Bu isteğe uygun olan Servlet'i belirler. Bu Servlet'e ait bir nesne bellekte var mı diye kontrol eder. Bu kontrolde var ise istekteki tüm bilgi bu Servlet e gönderilir. Eğer istenilen servlet nesnesi bellekte yok ise yeni bir tane oluşturulur, istek ve bilgi daha sonra bu servlet'e gönderilir. 3. Servlet kendisine gelen istek ve verileri alır ve bunları kullanarak oluşturması gerekli olan sonucu oluşturur. Servlet'in oluşturacağı sonuç bilgisi farklı biçimlerde olabilir. Genel olarak oluşturulan sonuç HTML sayfası şeklindedir. 4. Servlet oluşturduğu sonucu web sunucusuna gönderir. 5. Web sunucusu Servlet'ten gelen sonucu isteği yapan kullanıcıya gönderir. HTML isteklerini anlayarak HTML sonucu üreten ve yaygın olarak kullanılan temel Servlet sınıfı HttpServlet tir. JSP JSP, servlet yapısı üzerine kurulmuş diğer bir web bileşenidir. JSP sayfaları da servletlere çevrilir ama sunucu tarafından. Servletlerden farkı HTML tagları içerisine gömülmüş java kodlarıyla veya oluşturulan beanlerden(klasik java sınıfları) yapılan çağrılarla dinamik içerik üretmesidir. Aynı zamanda JSP den Servlet, Servlet ten JSP çağırılabilir. JSP spesifikasyonu Java Servlet API üzerine kurulmuş bir uzantıdır fakat Servlet ve JSP teknolojileri arasında belirgin farklar bulunmaktadır. İmplementasyonlarında programlama profesyonelliği gerektiren Servletlerin tersine JSP sadece geliştiriciler tarafından kullanılmakla kalmayıp aynı zamanda web dizayncıları tarafından da kullanılabilinmekte ve böylelikle geliştirme yaşam döngüsünde daha direkt bir rol oynamaktadır. Servlet kullanımında dinamik içeriğin oluşturulması servletin kendi içindeki programlama mantığının bir parçasıdır ve kullanıcı arayüzünden sorumlu olan statik gösterim şablonlarına bağlıdır. Bundan dolayı UI üzerinde yapılan çok ufak değişiklikler dahi servletin yeniden derlenmesini gerektirmektedir. Dinamik ve statik içeriklerin birbirlerine bu şekilde bağlı olmaları uygulamaların sabit ve esnek olmamalarına yol açmaktadır. JSP ile dinamik içeriğin oluşturulması için gereken mantık,statik içerikten bu mantığı JavaBean bileşenleri kullanılmak suretiyle ayrılmıştır.bunlar daha sonra JSP sayfasında bazı özel script ve etiketler sayesinde oluşturulup kullanılabilmektedir.bir sayfa dizayncısı sunum şablonu üzerinde herhangi bir değişiklik yaptığında, JSP sayfası otomatik olarak derlenmekte ve JSP motoru tarafından yine otomatik olarak web sunucusu içerisine konmaktadır. Yani JSP sayfasını yöneten, arkada çalışan java sınıflarıdır. Bu sınıflar, java derleyicisi tarafından platformdan bağımsız çalışan java bayt koduna çevrilerek servlet motoru tarafından(servlet Engine) çalıştırılacak hale getirilir

Örnek bir JSP kodu: <html> <body> <% String[] hotissues={"java","beans","xml","xsl","linux"};%> <h1>hot issues in computing :</h1> <ol> <% for(int i=0;i<names.length;,i++) { %> <li><b> <% hotissues[i] %> <% } %> </ol> <body> </html> JSF Arka planda Servlet ve ön yüzde JSP etiketlerini kullanabilen, bileşen temelli bir MVC çatısıdır(framework). Arka plan kodunu, tasarımı ve gösterimi ayrı ayrı yapabilmek için geliştirilmiş bir frameworkdur. Proje view leri JSF component'leri ile oluşturulur.(ör: primefaces, richfaces vb.) JSF daha çok component modele uygundur. Örneğin bir DataTable kullanacaksanız bunu richfaces veya primefaces gibi JSF componentleriyle hazır kullanabilirken, JSP de bunu html(html, javascript, jquery, css) ile yazarsı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ı(validasyon) yapmak istiyorsanız, bunun için JSF içindeki hazır yapıyı kullanabilirsiniz. JSF, temel olarkak FacesServlet sınıfını kullanır. EJB EJBler server tarafında bütün iş mantıklarını(business logic) çalıştıran java component'leridir. Dependency Injection, Transaction, Messaging, Scheduling, Remote Access, Web Service End Points vb. gibi işlemlerde kullanılır. EJB yi anlamak için http request ve response mantığını, web server'ların gelen çağrılara nasıl cevap verdiğini bilmeniz gerekir. Kısaca siz bir adres yazınca Firefox ta, browser bu adresin bulunduğu server a çağrıyı yönlendirir ve oradaki web server / application server çağrıya cevap verir, ve sonucu browser a yollar, ve web server normalde bu işlemi yaptıktan sonra gelen client çağrısını unutur. İşte server da yapılan işlemleri unutmamak, nerde kaldığını bilmek ve önemli işlemlerde yapılacak kontroller için(ve bir çok is mantığı için) server tarafındaki durumu kontrol etmek için EJBler kullanılır javada.

SUNUCULAR Web Server Web server statik (değişmeyen içerik) html sayfalarını göstermek için kullanılan sunucu türüdür. En iyi örneği Apache Httpd sunucusudur. Application Server Uygulama sunucuları bünyelerinde uygulamanın kendisini barındırır, bu uygulamanın ihtiyaç duyduğu kaynakları yönetir ve uygulamanın hizmetine sunarlar. Uygulama sunucuları bünyesinde JSP, JSF, Spring MVC ya da EJB gibi teknolojilerle hazırlanmışuygulamalar koşturulur. Uygulama sunucusu bünyesindeki uygulamalara güvenlik (security) ve otomatik transaksiyon yönetimi (transaction management) gibi hizmetler sağlar. Uygulama sunucular içerisinde EJB container içerenler JEE uygulama sunucusu diye de ayrılır. Java dünyasında en çok JBoss, Glassfish, Websphere, Weblogic, Tomcat gibi uygulama sunucuları kullanılır. Bunlardan Tomcat, JSP ve JSF projelerini çalıştırabilir ama EJB container barındırmaz. Dolayısıyla, EJB kullanılan projelerde bu seçenek devre dışı kalır. JBoss(RedHat) ve Glassfish(Sun) açık kaynak kodlu ve ücretsiz.(ücretli sürümleri de mevcutmuş) Websphere(IBM) ve Weblogic(Oracle) ise ücretli. Kullanım oranları aşağıdaki gibi: Açık kaynak kodlular arasındaki karşılaştırmalarda, Glassfish in JBoss tan daha çabuk yeniliklere uyum sağlayıp, sürüm çıkardığından ve yönetici ekranlarının kolaylığından bahsediliyor. JBoss un ise oturmuş ve geniş topluluğundan dolayı sorunlara çözüm bulmadaki avantajından bahsediliyor. İki sunucu arasında aşağıdaki gibi bir karşılaştırma testi de yapılmış. JBoss AS 7.0.2 JBoss AS 6.0.0 GlassFish 3.1.1

Empty server startup time 1.9 s 12 s 3.2 s Empty server heap memory 10.5 MB 100 MB 26.5 MB Empty server PermGen memory 36.3 MB 70 MB 28.4 MB MyApp deployment time 5.8 s 47 s 13 s Server + MyApp restart time 8 s 30 s 14.5 s Server + MyApp heap memory 52.8 MB 236 MB 55.3 MB Server + MyApp PermGen memory 80.9 MB 175 MB 84.5 MB MyApp redeployment time 3.5 s 30 s 7 s Diğer tarafta ise Weblogic in uygulama sunucuları dünyasına ilk adım atanlardan olması ve yeniliklere ayak uydurması noktasında Websphere den daha ileride gözüküyor. Ayrıca çabuk yazılım geliştirmek bugünün pazarlarının ilk şartı olduğu için WebLogic, WebGain Studio ve Visual Studio ile sıkı ilişkide. En çok kullanılan Java editörü Borland JBuilder de WebLogic'le direkt çalışmayı sağlıyor. Bu ürünleri kullanarak, geliştiriciler için yazılım geliştirme zamanınızı kısaltılıyor. Zaman alan ve angarya haline gelen birçok küçük görev, bu ürünler sayesinde otomatik oluyor. Websphere ise belli noktalarda geride olmasına rağmen ciddi biçimde çalışarak aradaki farkı kapatmaya çalışıyor. Ticariler ile açık kaynak kodlular arasındaki en büyük fark ise, ücretli sunucuların ağır yükleri kaldırabilmek için clustiring(kümeleme) ve bulut(cloud) teknolojilerini kullanmaları. Ama açık kaynak tarafında da bu duruma, açık kaynak kodlu farklı ürünlerle kombinasyonlar yaparak çözüm bulunabiliyormuş. Örneğin Glassfish+Hazelcast veya Tomcat+Hazelcast kombinasyonlarıyla rahatlıkla kümeleme ve bulut özellikleri kullanılabiliyormuş. Ticariler ile açık kaynaklılar arasındaki ikinci fark ise destek meselesinde ortaya çıkıyor. Ama okuduğum makalelerde millet tabiri caizse bu konuya meşrebine göre bakıyor. Örneğin açık kaynak kodlularla alakalı şöyle bir ifade var: Peki neden açık kaynak kodlu JEE uygulama sunucusunu tercih etmenizi önerdim? Bedava olduğu için mi? Hayır; öncelik destek alabilmektedir. Açık kaynak kodlu ve topluluğu olan ürünleri kullanırsanız, başınız belaya girse bile (-ki kesin girer) topluluktan cevap alma ihtimaliniz diğer ticari ürünlere göre her zaman daha fazladır. (Altuğ B. Altıntaş, JTPD-Java Teknolojileri ve Programcıları Derneği üyesi) Diğer tarafta ise şöyle bir bölüm: Sıradaki konumuz ise destek konusu. Sanırım en kanlı kısım burası olsa gerek. JBoss kullanıcılarının Türkiye de destek alabilecekleri sadece tek bir sağlam merci var : Google. Bu konuyu meslektaşım Oğuz Dağ şuradaki ve buradaki yazılarında çok güzel ifade etmiş : Şanslıysam, daha önce birisi daha JBoss ta aynı problemle karşılaşmıştır. Daha şanlıysam, bu problemini internette forumlarda paylaşmıştır. Daha daha şanslıysam, bu problemi çözmüştür. Hepten şanslıysam, çözümü internette bir yerlere yazmıştır.

Tabi Enterprise versiyona geçilirse telefon ve eposta ile RedHat ten destek alınabilir (uluslararası). Ama yerel bir organizasyonları ne yazık ki yok. ( Arden Agopyan- CV sinden: Akabinde IBM Türk - Yazılım Grubu nda, WebSphere ürün grubundan sorumlu Teknik Satış Danışmanı olarak çalışmaya başladım. )