Oğuz Esen Resmi Fan Clup İndir-Dinle 2011
İlk Bakışta JSP (Java Server Pages) 112

Join the forum, it's quick and easy

Oğuz Esen Resmi Fan Clup İndir-Dinle 2011
İlk Bakışta JSP (Java Server Pages) 112
Oğuz Esen Resmi Fan Clup İndir-Dinle 2011
Would you like to react to this message? Create an account in a few clicks or log in to continue.

İlk Bakışta JSP (Java Server Pages)

Aşağa gitmek

Sabit İlk Bakışta JSP (Java Server Pages)

Mesaj tarafından Mc Zindan Ankara Style Cuma Nis. 30, 2010 2:03 pm

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.



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





Şimdi tek yapmam gereken, tarayıcı penceresinde, [Linkleri görebilmek için üye olun veya giriş yapın.] 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.



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.



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ı;


Kod Çizelgesi Kod Dili: html
<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


Kod Çizelgesi Kod Dili: html
<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.
Mc Zindan Ankara Style
Mc Zindan Ankara Style
Admin
Admin

Mesaj Sayısı : 3104
Aktiflik Puanı : 13215
Kayıt tarihi : 26/11/09
Yaş : 31
Nerden : ankara

http://www.amasyateknoloji.tk

Sayfa başına dön Aşağa gitmek

Sayfa başına dön

- Similar topics

 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz