Kategoriler


SON YORUMLAR
Osman Gül
Sizce Maltepe Üniversitesi Bilgisayar mühendisi mezunu bir kişinin iş olanağı nedir acaba ve tahmini ne kadar maaş alır. yardımcı olursanız sevinirim.

elektronikçiler
Hakan
Bilgisayar mühendisleri sadece program ve yazılım yapıyorlarsa bilgisayarları kim yapıyor??? Yazıdan ben bunu anladım...
Ahmet Ba
çok faydalı. Teşeklkürler Admin
sahin
teshekkurler sade ve gozel izah ucun
bilgisayar mühendisi
13 yıldır sektördeyim. Bu bahsi geçen maaşları, ülkemiz koşullarında veren yerler parmakla sayılır.

eferin lan
Hüseyin
Ben daha yeni bu işe giriyorum ve araştırıyorumda hepsini örenin yazmısın bu kadar zamanım yok ve para gerekli hepsini birden çörenemem ne önerirsin
Mustafa Murat
Gayet açıklayıcı olmuş teşekkürler
Yasemin Akkuş
Makaleniz çok faydalı olmuş tecrübeli birinin yazdığı çok belli. ben yazılım stajı yapacağım Avrupada lise stajyeri alan yazılım şirketi arıyorum yardımcı olur musunuz? 05377386962
BEDIRHAN DEMIRBACAK
VALLAHA COK IYI ANLATTINIZ BEN BILGISAYAR MUHENDISI OLMAK ICIN SABIRSIZLANIYORUM BILGISAYAR MUHENDISLIGI COK IYI BIR MESLEK BENI FACEBOOK HESABIMDANDA YARDIMCI OLABILIRMISINIZ DAHA 9. SINIFA GIDIYOM TEŞEKKÜRLER
BEDIRHAN DEMIRBACAK
VALLAHA COK IYI ANLATTINIZ BEN BILGISAYAR MUHENDISI OLMAK ICIN SABIRSIZLANIYORUM BILGISAYAR MUHENDISLIGI COK IYI BIR MESLEK BENI FACEBOOK HESABIMDANDA YARDIMCI OLABILIRMISINIZ DAHA 9. SINIFA GIDIYOM TEŞEKKÜRLER
gözlüklü yazar kiz
merhaba bloguma yeni başladım. tavsiyelerinize uyacağım. teşekkürler... blogum; www.gozlukluyazarkiz.blogspot.com.tr
Mehmet Reşit SÖNMEZ
Selam Aleyküm.Lisede TM öğrencisiydim.Doğal olarak Fizikle uzaktan yakından bir alakam yoktu.Matematik dersimde pek iyi değildi.Bilgisayar Mühendisliğini okumayı düşünüyorum. Bilgisayar mühendisliğini seviyorum.Yaptıkları işlerden dolayı. SORUM : Sayısal derslerim yukarıda belirttiğim gibi pek iyi değil. Sizce Bilgisayar Mühendisliği bölümüne gitmelimiyim (Özelden gitmeyi düşünüyorum) BİLGİSAYAR MÜHENDİSLİĞİNİ OKU : Katılıyorum BİLGİSAYAR MÜHENDİSLİĞİNİ OKUMA : Katılmıyorum

Bilgisayar Mühendisleri
Here is the website inspired me to use 
it as a guide when I tried to define 
myself as an engineer candidate a few 
years ago. It really helped me to work
 and study feeling in confidence with 
being on the right way. I suggest this 
website to whom it may direct her/his 
to find the right career path. It 
includes many articles varies from 
real life experiences to detailed 
software engineering issues. But the 
most dignified parts for me are the 
articles in general and career titles.
Son okunan makaleler:
Java Dersleri 1: İlk Bakışta JSP (Java Server Pages)
Dünyanın En İyi 500 üniversitesi 2007 Sıralaması Açıklandı
DOKTOR GİBİ BİLGİSAYAR MÜHENDİSİ OLMAK
Bilgisayar Mühendisleri Kaç Para Alır?
Sizden gelen sorulara kısa kısa cevaplar
İSTANBULU SEÇİN!
Yeni mezun bilgisayar mühendisleri için 10 büyük günah!
BİLGİSAYAR MÜHENDİSLİĞİ GEREKSİZ BİR MESLEKTİR !!!
Mezunları en kolay iş bulan üniversiteler
MODEM ÇEŞİTLERİ
En iyi bilgisayar mühendisliği bölümüne sahip üniversiteler
Bilgisayar Mühendisliğini yeni kazandım, neler yapmalıyım?
Askerlik ve Bilgisayar Mühendisliği
Transact-SQL - T-SQL - SQL NEDİR?
Bilgisayar Mühendsileri için CV hazırlama rehberi - 1
Bilgisayar mühendisliğinde okuyan öğrencilere tavsiyeler
IP SINIFLARI
Bilgisayar Mühendisliği Hakkındaki 10 Büyük Yalan!
Bilgisayar Mühendisleri için CV hazırlama rehberi - 3
Microsoftda Çalışan Bir Türk ile Yapılmış Röportaj

Bilgisayar Mühendisleri Portalı

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

 

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.

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

<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.

Bu makaleyi beğendin mi? Yorumunu Yaz!







Sizden Gelen Yorumlar:

Yorum Yazın

salih(04.10.2013 03:41:11)
jsp hakkında ilk bilgi derler ya hani aynen o olmuş
çok teşekkür ederiz devamını bekleriz
%55 %18 %27
Katılıyorum Çekimserim Katılmıyorum



Cavad(15.10.2012 20:33:05)
Məqalə görə Çox sağolun..
%56 %13 %31
Katılıyorum Çekimserim Katılmıyorum



Deniz(05.09.2012 10:06:41)
Teşekkürler, gerçekten çok beğendim çok yararlı oldu, elinize sağlık...
%46 %8 %46
Katılıyorum Çekimserim Katılmıyorum



e.t(04.09.2012 15:13:41)
makalenizi ve üslubunuzu oldukça başarılı buldum..iyi çalışmalar
%56 %0 %44
Katılıyorum Çekimserim Katılmıyorum



vuqar(17.05.2012 13:49:30)
super
%62 %8 %31
Katılıyorum Çekimserim Katılmıyorum



habibe(18.02.2011 12:05:34)
çok teşekkürler
%44 %19 %37
Katılıyorum Çekimserim Katılmıyorum



eor karas(04.10.2010 15:09:19)
Arkadaşım onca uğraşmış etmişsin, çokta iyi etmişsin. Bi çok insanın beğenmediği bu kitap varya şuan piyasada yok ve dağıtıma tekrar başlasa yine yok satacak. Ama bizim insanımın yok çeviri kitabı yok özgün değil gibi bahanelerle bu yazarların kitaplarını yeriyorlar. Keşke köstek olmak yerine derstek olunsa.
%50 %21 %29
Katılıyorum Çekimserim Katılmıyorum



make.difference(25.08.2010 23:14:16)
eline sağlık üstad, jsp başlangıçdersi arıyordum ilaç oldu saol ;)
%40 %16 %44
Katılıyorum Çekimserim Katılmıyorum



murat(07.12.2009 08:56:08)
tartışmaya fazla girmek istemem ama, buraya bu kadar yorum yazacağına bunu bir makale haline getir bu siteye koy ve bizler de senin makaleni yorumlayalim... böylesi çok daha iyi olur... yoksa sadece eleştiri yazısı yazınca çokbilmiş ukala izlenimi oluşuyor bende...
%33 %17 %50
Katılıyorum Çekimserim Katılmıyorum





Yazılan yorumlar tek sayfaya sığmadı. Daha fazlasını okumak için aşağıda sayfa numarasına tıklayın:
1   > 2 

Copyright© 2001-2017. Bilgisayar Mühendisleri Portalı | Bütün hakları saklıdır.