ÜYE GİRİŞİ  
Kullanıcı adı :
Parola :
 
  Üye Ol!  
 
 
ANASAYFA HABERLER ASP ASP.NET PHP C/C++ C# JAVA ARAMA İLETİŞİM

ASP.NET
  Expression Web ile Site Yapimi
  Web Server Control Yazmak - 2
  Web Server Control Yazmak - 1
  Sql Cache Dependency
  Web Kontrollerini Etkin Kullanmak
  Xslt Kullanımı
  Bir Web Sayfasının Anatomisi
  Client Script Callback
  Login Kontrollerinin Kullanımı

ASP
  ASP Nesneleri
  29 Soruda ASP
  Matematiksel Uygulamalar
  Select Case Yapısı 2
  Fonksiyon(Function) Kullanımı
  IF-ELSE...
  GET Yöntemi ile İşlemler
  Asp de Tarih ve Saat fonksiyonları
  While-wend döngüsü

C Sharp (C#)
  C#'da klasör işlemleri
  C# ile diziyi tersine çevirme
  Çok Kullanılan Kontroller-1
  C# ile Kronometre Uygulaması
  Overloaded Metotların Gücü
  C# ile XMLQuery Örneği
  Rastgele Kod Üretimi
  Kontroller ile Çalışma
  Düzenli İfadeler Nedir?

DUYURULAR

F# Microsoft dil teknolojisinin en yeni üyesi.Common Lisp-Slime-Emacs tarzında etkileşimli,kıvrak,sonuçların anında görülebildiği ve yüksek performanslı bir betik dil olarak özetleyebiliriz bu yeni dili. devamı >>


Türk Telekom'dan yapılan yazılı açıklamada, Telekomünikasyon Kurumu'nun onayladığı yeni tariflerin, internet servis sağlayıcı şirketlerin maliyetlerini önemli oranlarda düşüreceği aktarıldı. devamı >>


İlk Bakışta JSP | Asundinay.Com
JAVA İçin Eklenmiş Makale
 Makale Adı  :  İlk Bakışta JSP
 Yayın Tarihi :  22.08.2007 23:19:53 Ekleyen :  Kazım Aydın Okunma : 562

Bu hafta, JSP ile dinamik etkileşimli bir web sayfası oluşturmak için kendimi bayağı bir hırpaladım. Sorunlar, JSP olarak yazdığım örnek sayfaları, servlet’ leri çalıştırmak için kullandığım JSWDK kitinde baş gösterdi. Nedense hiç bir JSP sayfasını çalıştıramadım. Evin içinde bir o köşeye bir bu köşeye koşuştururken nerde hata yaptığımı bulmaya çalışıyordum. Sorun büyük bir ihtimalle benim sistemimden kaynaklanıyordu. Tabiki benimde yaptığım yanlış ayarlamalar olabilirdi. Sonuda kurcalaya kurcalaya güzelim JSWDK kitinide bozuvermiştim.

Ne yapabilirim diye düşünürken, aklıma parlak bir fikir geldi. Elimdeki kaynaklar JSP uygulamalarına ufak bir dokunuş yapmıştı. Ancak bu konuda esaslı bir kaynağım olması gerektiği inancındaydım. Her ne kadar amacım mimarinin temellerini ve çalışma sistemini anlayıp çok basit bir uygulama geliştirmek olsada, yinede elimin altında her zaman başvurabileceğim bir kaynak olması gerektiğini düşünüyordum. Bu düşünceler ile hemen yola koyuldum ve Kadıköy’ deki kitapçıları gezmeye başladım. Sonunda aradığım kitabı bulmuştum. Pusula yayınlarından Numan Pekgöz’ ün JSP isimli kitabı.

İşin güzel yanı, kitapta JSP sayfalarını kurup çalıştırabileceğim uygulamaların yer aldığı bir CD’ de mevcuttu. Büyük bir heyecan ile kiabı aldım ve yol boyunca otobüste okuyarak geldim. Eve geldiğimde, JSP sayfalarını çalıştırabileceğim JRun sunucusunun nasıl kurulacağını ve kullanılacağını çoktan öğrenmiştim bile. Hemen kitapta bahsedilen adımları, birer birer işlemeye başladım. JRun, şu anda Macromedia firmasına ait olan bir ürün olmakla birlikte kitabın bu sürümünde bir önceki verisyonuna yer verilmiş. Ama hiç önemli değil. Sonuçta JSP sayfaları çalışıyor. Kurulumu bitirdiğimde,

D:\Program Files\Allaire\JRun\

dizinine, java web sunucum kurulmuş, hazır ve nazırdı. Artık geliştirmek istediğim JSP sayfalarını

D:\Program Files\Allaire\JRun\servers\default\default-app\

klasörü altına atacaktım. Tabi kurulum basit olmasına rağmen yinede sistemde yapılması gereken ince ayarlamalarda vardı. Bunlarda birisi her zamanki gibi meşhur ClassPath tanımlamaları ile ilgiliydi. JSP sayfalarının başarılı bir şekilde işlenebilmesini sağlamak için,

D:\Program Files\Allaire\JRun\lib\ext\servlet.jar

adresindeki servlet.jar paketinin Classpath tanımına eklenmesi gerekiyordu. Bu işlemin ardından hemen ilk olarak aşağıdaki gibi basit bir sayfa oluşturdum ve bu sayfayı jsp uzantısı ile, D:\Program Files\Allaire\JRun\servers\default\default-app klasörü altına kaydettim.

<html>
<head>
<title>ilk jsp</title>
<body>
<%
String adim="Burak";
out.println(adim);
%>
</body>
</html>

Şimdi tek yapmam gereken, tarayıcı penceresinde, http://localhost:8100/ilk.jsp adres satırını girmekti. Bende öyle yaptım.

Şaka maka, ilk JSP sayfamı yazmıştım. Evet herşey iyidi hoştu ama, bu JSP nedemekti? Ne işe yarıyordu? Herşeyden önemlisi çalışma sistemi neydi? JSP ile ilgili tüm kaynaklarımdaki bilgilerimi şöyle bir gözden geçirdim ve büyük resme(big picture) ulaşmak için adımlarımı atmaya başladım.

Herşeyden önce, geçen hafta servlet’ ler yardımıyla, kullanıcı ile dinamik etkileşimli web sayfalarının nasıl gerçekleştirilebileceğini incelemiştim. JSP (Java Server Pages)’ lerde aynı işi yapmaktaydı. Aralarındaki farklılıkları düşündüğümde ilk akla gelen, JSP’lerde html içerik ile Java dilinin kullanıldığı sunucu taraflı (server-side) kodların bir arada bulunmasıydı. öyleki servlet’ler ile çalışırken, java kodlarını kullanarak html çıktılarını üretmek gerçekten zahmetli bir işti. Açıkçası hammallıktı. Oysaki JSP’de html içerik ile java kodları aynı sayfada yer alabilmekteydi. Bu ise, tasarımın etkili olduğu, sunucu taraflı java kodları barındıran web sayfalarının kolayca oluşturulabilmesi demekti.

Bu fark önemsiz gibi görünsede, geliştirme zamanında oldukça büyük tasarruf sağlamakta. Yaklaşık olarak 8 saatlik bir JSP’ ci olarak bunu ben bile söyleyebiliyorum. Diğer yandan bence asıl önemli olan fark, JSP sayfalarının işleyiş şekli. öyleki, oldukça ilginç bir durum söz konusu. O da, JSP’ lerin, istemciler tarafından talep edildiklerinde, eğer bu talep ilk kez gerçekleşmişse, java kodlarının, servlet’ler haline getirilmesi ve sınıf olarak derlenmesi. Yani, eninde sonunda yazılan JSP’ ler derlencekleri zaman işin içine servlet’ ler girmekte. Kısacası JSP’ler bizi servlet yazma derdinden kurtarıyor diyebiliriz. Ancak tabiki Jsp’ lerin servlet’ ler ile tümleşik olarak çalışmasıda söz konusu. Aslında Java sunucu sayfalarının çalışma prensibini aşağıdaki şekil ile daha iyi anlatabileceğime inanıyorum.

Jsp sayfalarının çalışma prensibi bu şekilde. Yani, kullanıcı bir JSP sayfasını ilk kez talep ettiğinde, sunucu bu talep üzerine ilgili JSP sayfasının java kodlarından bir servlet oluşturuyor. Bu servlet dosyası aslında bir java byte-code dosyası. Sonraki adımda ise byte-code dosyası class olarak derleniyor. Derlenen class, kullanıcıdan gelen parametreler vs... varsa bunlarla birlikte çalıştırılıyor ve üretilen sonuçlar html olarak tekrardan java sunucusuna gönderiliyor. Java sunucusu ise, bu html sonuçlarını kullanıcının tarayıcısına gönderiyor. Bu sistem, sadece oluşturulan Jsp sayfası kullanıcı tarafından ilk kez talep edildiğinde gerçekleştiriliyor.

Nitekim bundan sonraki çağrılarda zaten var olan derlenmiş class dosyları çalışıyor. Elbette biz Jsp sayfamızı değiştirirsek buradaki süreç tekrarlanacaktır. Peki bu teori gerçekten böylemi? Bunu bir şekilde ispat etmem gerektiğini düşündüm kendimce. Geliştirdiğim, ilk.jsp dosyasının aynısının farklı isimli bir verisyonunu oluşturdum. Yeni.jsp olarak. Daha sonra bu sayfayı tarayıcıdan talep ettim. Sonra, alt klasörleri gezinmeye başladım. Nemi arıyordum? İçinde Yeni kelimesi olan java ve class uzantılı dosyalar. Eğer bu dosyaları bulursam gerçektende teorinin çalışmasını ispatlamış olucaktım. Derken,

D:\Program Files\Allaire\JRun\servers\default\default-app\WEB-INF\jsp

klasöründe, bu dosyaları buldum.

Resmin büyük hali için tıklayın

Ancak bu ispatta eksik olan bir şeyler var gibiydi. Belkide ben Jsp dosyasını kaydettiğimde, bu dosyalar otomatik olarak oluşturulmuştu. İşte bu hipotezi yıkmanın tek bir yolu vardı. Yeni bir jsp dosyası oluşturacak, bu sayfanın oluşturuluş zamanını kaydedecek sonra bir kahve molası verecektim. Geldiğimde tarayıcıdan bu sayfayı çalıştıracak ve oluşan java ve class dosyalarının süresini, jsp dosyasının oluşuturuluş süresi ile karşılaştıracaktım. Bunun üzerine, Yeni.Jsp’ den bir kopya daha oluşturdum. YeniGibi.jsp.

Şimdi de kahve molasına çıkma zamanı. Neyse, kahve molasına çıkıp geldim. Bir kaç dakika sonra geldiğimde hemen, jsp klasörünün içine baktım.

Resmin büyük hali için tıklayın

Görünürde YeniGibi.jsp için oluşturulmuş java ve class dosyalarından eser yoktu. Derken tarayıcıda bu sayfayı tekrardan çalıştırdım ve jsp klasörüne tekrar baktım.

Artık ispat gerçekleşmişti. Jsp ler ile ilgili öenmli bir nokta, html sayfaları ile içiçe yazılabilmeleriydi. Aynı asp sayfalarında olduğu gibi. Tabi java ile yazılan bu sunucu taraflı kodlar, tam anlamıyla nesne yönelimli bir dilin avantajlarını kullandığından oldukça esnek ve güçlü sonuçlar elde etmemizi sağlamaktaydı. Peki içiçe çalışan bu sayfaların işleyişine yakından bakmak isteseydim nasıl bir şekli kafamda canlandırabilirdim diye düşünmeye başladım. Sonuçta aşağıdaki nacizane şema ortaya çıktı.

Bu şema aslında, Jsp’ nin bir avantajınıda göstermekte. O da, tasarım ve kodlama katmanlarının ayrı ayrı ele alınması. Yani, bir tasarımcı ve bir java programcısı kafa kafaya verdiklerinde, dünyanın en çok konuşulan etkileşimli web sayfalarını yazabilirler. Kodlamacı java dili ile sayfayı kodlarken, tasarımcı sadece görsel tasarım ile ilgilenecektir. Gerçi ben, Asp.Net ile gelen code-behind modelini bu modele tercih ederim. Nitekim oradada kod katmanı ve tasarım katmanı ayrıdır. Hatta o kadar ayrı olabilirlerki, code-behind tekniği sayesinde, aspx sayfalarına ati kodlar C# gibi nesne yönelimli bir dil ile ayrı sınıf dosyalarında toparlanabilir. Tabiki .net içindeki bu teknik servletlere nazaran, kod ve sunum katmanının daha iyi entegre çalışmasını sağlayan bir yapı üzerinde teşkil edilmiş.

Bu kadar laf kalabalığından sonra aslında işe yarar bir örnek yapmanın zamanı geldi. İşe yarar dediysem ufkumu açmak için teşebbüste bulunacak işe yaramaz bir uygulamdan bahsediyorum elbette. En azından, bir jsp sayfasındaki form bilgilerinin başka bir jsp sayfası tarafından ele alınmasını sağlamak gibi basit bir işlem gerçekleştirebilirim. Bu amaçla aşağıdaki kodları içeren jsp sayfalarını oluşturdum.

Giris.jsp sayfası;

<html>
<head>
<title>ilk jsp</title>
<body>
<form name="form1" method="post" action="kontrol.jsp">
<table width="200" border="0">
<tr>
<td>Ad</td>
<td><input type="text" name="tAd"></td>
</tr>
<tr>
<td>Soyad</td>
<td><input type="text" name="tSoyad"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</form>
</body>
</html>

kontrol.jsp

<html>
<head>
<title>Giriş</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="200" border="0">
<tr>
<td><strong><%=request.getParameter("tAd")%></strong></td>
</tr>
<tr>
<td><strong><%=request.getParameter("tSoyad")%></strong></td>
</tr>
</table>

</body>
</html>

Yazdığım kodlarda tek göze çarpan nokta, form’ daki field’ lara ait değerleri, kontrol.jsp dosyasında, request sınıfının getParameter metodu ile alıyor oluşumdu. Hemen, giriş.jsp sayfasını sunucuda çalıştırdım ve bilgileri girip buton kontrolüne bastım. Sonuçta, kontrol.jsp sayfam çalıştı ve aşağıdaki ekran görüntüsünü elde ettim.

Jsp oldukça geniş bir konu ve incelenmeye değer. Şu an için çalışma prensibini, en büyük avantajını ve nasıl geliştirildiğini biliyorum. Ancak elbetteki bir kaç günlük çalışma ile Jsp’ ye hakim olamam. Hiç olmassa ilk bakışta göze çarpan noktaları irdelemiş oldum.

Bu kahve molamız ile birlikte Java ile 24 Kahve Molasının’ da sonuna gelmiş bulunuyoruz. Ancak bunun bir son olmadığını hatta bir başlangıç olduğunu söylemek isterim. Nitekim değinemediğim pek çok konu var. örneğin değerli bir okurumuzun belirttiği gibi ağ programcılığı. Bunun dışında, thread’ ler, koleksiyonlar (torbalar), IO (Input-Output) işlemleri vb... Dolayısıyla bu konularada değinmek ve incelemek düşüncesindeyim. Bundan sonrasında, her cuma olmasa bile düzenli olarak bahsettiğim konuları inceleyecek ve yazmaya çalışacağım.

Umuyorum ki bu yazı dizisinde sizlere Java dilini bir nebze olsun öğretebilmişimdir. Ben bir şeyler öğrendim. Ama elbetteki öğreniklerimi tekrar etmessem, gerçek projelerde kullanmassam kolayca unutabilirim. Sizlere de tavsiyem bol bol tekrar etmeniz ve projeler geliştirmeniz olacaktır. Hepinize mutlu ve sağlıklı günler dilerim. Salıcakla kalın.


 

 

 


Kaynak : csharpnedir.com


 

Java İçin Eklenmiş Tüm Makaleler
Java İçin En Son Eklenen 5 Makale
 Makale Adı  :  Java ile Histogram Eşitleme
 Yayın Tarihi :  22.08.2007 23:24:42 Ekleyen :  Kazım Aydın Makaleyi Oku  
 Makale Adı  :  JAVA İçinde Thread Kullanımı
 Yayın Tarihi :  22.08.2007 23:23:47 Ekleyen :  Kazım Aydın Makaleyi Oku  
 Makale Adı  :  Serialization İşlemleri 2
 Yayın Tarihi :  22.08.2007 23:23:08 Ekleyen :  Kazım Aydın Makaleyi Oku  
 Makale Adı  :  Serialization İşlemleri
 Yayın Tarihi :  22.08.2007 23:20:48 Ekleyen :  Kazım Aydın Makaleyi Oku  
 Makale Adı  :  İlk Bakışta JSP
 Yayın Tarihi :  22.08.2007 23:19:53 Ekleyen :  Kazım Aydın Makaleyi Oku  

C/C++
  C ögreniyorum -8-
  C ögreniyorum -7-
  C ögreniyorum -6-
  C ögreniyorum -5-
  C ögreniyorum -4-
  C ögreniyorum -3-
  C ögreniyorum -2-
  C ögreniyorum -1-
  İlk C++ Programımız

JAVA
  Java ile Histogram Eşitleme
  JAVA İçinde Thread Kullanımı
  Serialization İşlemleri 2
  Serialization İşlemleri
  İlk Bakışta JSP
  Servletler ile Web Sayfaları
  Java ile Grafik Çizim
  Java, MySql Bağlantısı
  JBuilder ile Database

PHP
  php dersleri -1-
  php/access ile silme işlemi
  php ile access'e bağlanma - 2
  php ile access'e bağlanma - 1
  Döngü ve Diziler - BÖLÜM 5
  Döngü ve Diziler - BÖLÜM 4
  Döngü ve Diziler - BÖLÜM 3
  Döngü ve Diziler - BÖLÜM 2
  Döngü ve Diziler - BÖLÜM 1

İSTATİSTİKLER
  Toplam ziyaret :  24742
  Toplam üye sayısı :  1081
  Asp makale sayısı :  20
  Asp.Net makale sayısı :  54
  Php makale sayısı :  26
  C/C++ makale sayısı :  51
  C# makale sayısı :  29
  Java makale sayısı :  33
  Toplam makale saıysı :  213
Copyright asundinay® 2007 Her Hakki Saklidir
Tasarim & Programlama asundinay®