<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Bilgisayar Kavramları</title>
	
	<link>http://www.bilgisayarkavramlari.com</link>
	<description>www.bilgisayarkavramlari.com</description>
	<pubDate>Tue, 06 Jan 2009 10:52:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/BilgisayarKavramlari" type="application/rss+xml" /><item>
		<title>OpenGL İsim Dizisi</title>
		<link>http://feeds.feedburner.com/~r/BilgisayarKavramlari/~3/504156309/</link>
		<comments>http://www.bilgisayarkavramlari.com/2009/01/06/opengl-isim-dizisi/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 09:12:52 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
		
		<category><![CDATA[Bilgisayar Grafiği (Computer Graphics)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2009/01/06/opengl-isim-dizisi/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER
OpenGL programlaması sırasında ekrandaki bir nesnenin seçilmesi mümkündür. Bu seçme işlemi sırasında sanki ekranda verilen bir (x,y) koordinatından (ekran 2 boyutlu olduğu için görüntüler 3 boyutluda olsa sonuçları 2 boyutludur (detayı için izdüşüm (projection) konusunu okuyunuz) dolayısıyla sadece x ve y koordinatlarından) ekranda bir ışın fırlatılmış gibi, ışının geçtiği bütün nesnelerin [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>OpenGL programlaması sırasında ekrandaki bir nesnenin seçilmesi mümkündür. Bu seçme işlemi sırasında sanki ekranda verilen bir (x,y) koordinatından (ekran 2 boyutlu olduğu için görüntüler 3 boyutluda olsa sonuçları 2 boyutludur (detayı için <a href="http://www.bilgisayarkavramlari.com/2008/11/17/izdusum-projection/">izdüşüm (projection) </a>konusunu okuyunuz) dolayısıyla sadece x ve y koordinatlarından) ekranda bir ışın fırlatılmış gibi, ışının geçtiği bütün nesnelerin isimlerini almaya yarar.</p>
<p>Dolayısıyla ekrandaki seçilen x,y koordinatında görüntülen bütün nesnelerin isimlerini alan bir isim yığını (stack) openGL&#8217;de tanımlıdır. Bu yığının sıfırlanması ve ilk değerini alması aşağıdaki şekilde mümkündür:</p>
<pre>glInitNames();
glPushName(0);

glPushMatrix();   // Görüntünün değişmemesi
// için çizime başlanmadan önceki dönüşümler
// kaydediliyor 

// ilk neseneye 1 ismi veriliyor ve ilk
// nesne ekrana çiziliyor
    glLoadName(1);
    ilkNesneyiCiz();
// ikinci nesne benzer şekilde çiziliyor
    glLoadName(2);
    ikinciNesneCiz();
// son nesneyi ciz
    glLoadName(3);
    ucuncuNesneCiz();
// goruntu donusumune geri donuyoruz
glPopMatrix ();</pre>
<p>Yukarıda yorumlanmış olarak verilen kodu kullanarak çizim yapmanız ve çizilen nesnelerin isimlerini <a href="http://www.bilgisayarkavramlari.com/2007/05/04/stack-yigin/">yığına (stack)</a> koymanız mümkündür.</p>
<img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/504156309" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2009/01/06/opengl-isim-dizisi/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2009/01/06/opengl-isim-dizisi/</feedburner:origLink></item>
		<item>
		<title>OpenGL Nesne Seçimi (Object Picking)</title>
		<link>http://feeds.feedburner.com/~r/BilgisayarKavramlari/~3/504156310/</link>
		<comments>http://www.bilgisayarkavramlari.com/2009/01/06/opengl-nesne-secimi-object-picking/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 09:00:48 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
		
		<category><![CDATA[Bilgisayar Grafiği (Computer Graphics)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2009/01/06/opengl-nesne-secimi-object-picking/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER
Bu yazının amacı bilgisayar grafiklerinde kullanılan OpenGL kütüphanesi marifetiyle ekranda bulunna 3 boyutlu nesnelerden birisinin fare ile tıklandığında nasıl algılandığını anlatmaktır.
Ekrandan seçme işlemi yapılabilmesi için aşağıdaki 6 adımın izlenmesi gerekir:

Öncelikle ileride kullanılmak üzere seçilen nesneleri tutan ve glSelectBuffer isimli fonksiyon ile ilk değerini alacak olan bir dizinin tanımı
Seçme işleminin aktif olabilmesi [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>Bu yazının amacı bilgisayar grafiklerinde kullanılan OpenGL kütüphanesi marifetiyle ekranda bulunna 3 boyutlu nesnelerden birisinin fare ile tıklandığında nasıl algılandığını anlatmaktır.</p>
<p>Ekrandan seçme işlemi yapılabilmesi için aşağıdaki 6 adımın izlenmesi gerekir:</p>
<ol>
<li>Öncelikle ileride kullanılmak üzere seçilen nesneleri tutan ve glSelectBuffer isimli fonksiyon ile ilk değerini alacak olan bir dizinin tanımı</li>
<li>Seçme işleminin aktif olabilmesi için GL_SELECT mod&#8217;unu glRenderMode() fonksiyonuna parametre vermek.</li>
<li>Seçilmiş nesneleri tutan yığının (Stack) ilklenmesi için glInitNames ve glPushName fonksiyonlarının çağrılması</li>
<li>Seçme işlemi sırasında kullanılacak olan <a href="http://www.bilgisayarkavramlari.com/2008/11/19/opengl-ve-kamera-goruntusu-camera-viewing/">görüntü alanın (viewing Volume)</a> belirlenmesi. Bu görüntü alanı çizim sırasında kullanılan alandan farklıdır.</li>
<li>Çizim işlemlerinin yapılması ve bu sırada çizilen nesnelere isin verilmesi</li>
<li>Seçme durumundan çıkarak seçilmiş nesnenin işlenmesi</li>
</ol>
<img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/504156310" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2009/01/06/opengl-nesne-secimi-object-picking/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2009/01/06/opengl-nesne-secimi-object-picking/</feedburner:origLink></item>
		<item>
		<title>Java Bean</title>
		<link>http://feeds.feedburner.com/~r/BilgisayarKavramlari/~3/503053982/</link>
		<comments>http://www.bilgisayarkavramlari.com/2009/01/05/java-bean/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 04:11:53 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
		
		<category><![CDATA[Bilgisayar Kavramları]]></category>

		<category><![CDATA[JAVA]]></category>

		<category><![CDATA[bilgisayar felsefesi]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2009/01/05/java-bean/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER
İsmini bir kahve makinesinden alan JAVA&#8217;nın ilk başlardan beri sembolü olan kahveden türemiş bir kavram olan java bean&#8217;in sembolü de kahve çekirdekleridir (bean kelimesini çekirdek olarak çevirmek mümkündür)
Basitçe java bean, tekrar kullanılabilir bir yazılım bileşenidir (reusable software component). Daha detaylı bakıldığında aslında her java bean bir yada birden çok sınıftan (class) [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>İsmini bir kahve makinesinden alan JAVA&#8217;nın ilk başlardan beri sembolü olan kahveden türemiş bir kavram olan java bean&#8217;in sembolü de kahve çekirdekleridir (bean kelimesini çekirdek olarak çevirmek mümkündür)</p>
<p>Basitçe java bean, tekrar kullanılabilir bir yazılım bileşenidir (reusable software component). Daha detaylı bakıldığında aslında her java bean bir yada birden çok sınıftan (class) oluşmuş ve tek başına çalışma yeteneği olan bileşenlerdir.</p>
<p>Tek başına çalışabilen bu bileşenler, daha gelişmiş programlar oluşturmakta kullanılırlar. Düşük bağlılık (coupling) ve yüksek uyumdaki (cohesion) program parçalarının bir araya getirilmesi ile daha modüler bir yaklaşım elde etmek ve büyük bir projeyi parçalara bölmek mümkündür.</p>
<p>JAVA Bean&#8217;lerin klasik nesne yönelimli modellemedeki (object oriented modelling) sınıf (class) bölmesinden farkı daha üst seviyeli olmaları ve nesnel bölmelerden daha çok kavramsal bölmelere gidilebilmesidir.</p>
<p>Örneğin bir yazılımda veritabanı kullanıyor olalım. Kullanıcıların şifreleri ile giriş yaptıkları bu veritabanı modülünü ele alalım. sınıf (class) yaklaşımında bir veritabanı sistemindeki kullanıcılar (kullanıcı bilgileri, isim, şifre gibi) , veritabanı nesneleri (tablolar) veritabanından geçici alınan bilgiler (veri tabloları, data table) veya kullanıcıların sistemde açtıkları oturumlar (session) ayrı ayrı birer sınıfta tanımlanır.</p>
<p>Oysaki bütün bu sınıfları birleştirerek tek bir java bean yapmak mümkündür. Tek başına çalışan bu java bean projenin bir modülü olup bu modül kullanılarak daha büyük sistemlerin inşası mümkündür.</p>
<p>JAVA Bean&#8217;lerin bir diğer özelliği ise geliştirme sürecinde çalıştırılabilir olmalarıdır. Sonuçta tek başına çalışan bu bileşenler, kod geliştirme (Development) zamanında da çalışabilir ve yazılımı geliştiren kişilere anlık olarak kullanma ve yaptığı her işlemi test etme imkanı sağlar.</p>
<p>JAVA Beanler ayrıca şu 3 özelliği barındırmalıdır:</p>
<ul>
<li>Public Constructor</li>
<li>Serializable olmalıdırlar yani Serializable arayüzünü (interface) uygulamalıdırlar (implements)</li>
<li>Erişim metodları bulunmalıdır (getter /setter methods)</li>
</ul>
<img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/503053982" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2009/01/05/java-bean/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2009/01/05/java-bean/</feedburner:origLink></item>
		<item>
		<title>Türkçe Netbeans</title>
		<link>http://feeds.feedburner.com/~r/BilgisayarKavramlari/~3/502119485/</link>
		<comments>http://www.bilgisayarkavramlari.com/2009/01/04/1640/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 23:22:45 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
		
		<category><![CDATA[JAVA]]></category>

		<category><![CDATA[Web Teknolojileri]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2009/01/04/netbeans-projelerinin-turkce-destegi/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER
Netbeans ile oluşturulan projelerde türkçe karakter desteği için projenin ilgili karakter kümesinin (character set) ayarlanması gerekir. Bunun için netbeans üzerindeki proje özelliklerinin ayarlanması gerekir.  Öncelikle projenin özelliklerine girmek için proje listesindeki projenin üzerinde sağ tuşa tıklayarak özelliklere (properties) giriniz:

Ardından açılan aşağıdaki ekranda encoding seçeneğinden ISO-8859-9 seçilir :

Ekran onaylandıktan sonra proje [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER<br />
Netbeans ile oluşturulan projelerde türkçe karakter desteği için projenin ilgili karakter kümesinin (character set) ayarlanması gerekir. Bunun için netbeans üzerindeki proje özelliklerinin ayarlanması gerekir.  Öncelikle projenin özelliklerine girmek için proje listesindeki projenin üzerinde sağ tuşa tıklayarak özelliklere (properties) giriniz:</p>
<p><img class="alignnone size-full wp-image-1638" title="netbeanstr" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/netbeanstr.jpg" alt="" width="325" height="498" /></p>
<p>Ardından açılan aşağıdaki ekranda encoding seçeneğinden ISO-8859-9 seçilir :</p>
<p><a href="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/netbeanprojeozellikleri.jpg"><img class="alignnone size-full wp-image-1639" title="netbeanprojeozellikleri" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/netbeanprojeozellikleri.jpg" alt="" width="500" height="359" /></a><br />
Ekran onaylandıktan sonra proje karakterleri Türkçe olarak düzelir.</p>
<img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/502119485" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2009/01/04/1640/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2009/01/04/1640/</feedburner:origLink></item>
		<item>
		<title>C ile Zaman İşlemleri</title>
		<link>http://feeds.feedburner.com/~r/BilgisayarKavramlari/~3/500363012/</link>
		<comments>http://www.bilgisayarkavramlari.com/2009/01/01/c-ile-zaman-islemleri/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 18:41:56 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
		
		<category><![CDATA[C/C++]]></category>

		<category><![CDATA[Programlama Dilleri]]></category>

		<category><![CDATA[Sistem Programlama (System Programming)]]></category>

		<category><![CDATA[işletim sistemleri]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2009/01/01/c-ile-zaman-islemleri/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER
C dilinde mevcut zamanı almak ve işlemek mümkündür. Bunun için time.h dosyasının içerisinde bulunan fonksiyonlar kullanılabilir. Ayrıca time.h dosyasında bulunan time_t oluşumu (struct) zaman tutmak için geliştirilmiştir ve zamanı oluşturan alt unsurları da içerir.
Örneğin şu andaki zamanı ekrana basmak için aşağıdaki kod kullanılabilir:
  struct timeval tv;
  time_t curtime;
  gettimeofday(&#38;tv, NULL);
  [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>C dilinde mevcut zamanı almak ve işlemek mümkündür. Bunun için time.h dosyasının içerisinde bulunan fonksiyonlar kullanılabilir. Ayrıca time.h dosyasında bulunan time_t<a href="http://www.bilgisayarkavramlari.com/2007/11/08/olusum-composition-ve-struct-yapilar/"> oluşumu (struct) </a>zaman tutmak için geliştirilmiştir ve zamanı oluşturan alt unsurları da içerir.</p>
<p>Örneğin şu andaki zamanı ekrana basmak için aşağıdaki kod kullanılabilir:</p>
<pre>  struct timeval tv;
  time_t curtime;
  gettimeofday(&amp;tv, NULL);
  curtime=tv.tv_sec;
  printf("%m-%d-%Y  %T.",localtime(&amp;curtime));</pre>
<p>Örneğin bir kullanıcıdan yazı okuyan ve ne kadar zamanda okuduğunu ekrana basan kod aşağıdaki şekilde yazılabilir:</p>
<pre><span class="prep">#include &lt;stdio.h&gt;
#include &lt;time.h&gt;
#include &lt;conio.h&gt;
int main ()
{
  time_t start,end;
  time (&amp;start);
  printf ("Bir tuşa basınız");
  getch();
  time (&amp;end);
  printf ("Tuşa basmanız %.2lfsaniye sürdü.\n", </span><span class="prep">difftime (end,start)</span><span class="prep">);
  return 0;
}

</span></pre>
<p>Yukarıdaki time_t yapısı oldukça kullanışlı olmasına karşılık mikro saniye gibi düşük zamanları algılamakta yetersizdir. Bunun için biraz daha detaylı çalışan timeeval yapısından ve gettimeofday fonksiyonundan faydalanılabilir:</p>
<pre>struct timeval starttv, endtv;</pre>
<pre>struct timezone starttz, endtz;gettimeofday(&amp;starttv, &amp;starttz);</pre>
<pre>for (i=0;i&lt;100;i++)</pre>
<pre>   for(j=0;j&lt;256;j++)</pre>
<pre>      for(k=0;k&lt;10;k++)</pre>
<pre>         printf("deneme") ;</pre>
<pre>gettimeofday(&amp;endtv, &amp;endtz);</pre>
<pre>float fark1=getdiff(endtv, starttv);</pre>
<p>Örneğin yukarıdaki kodda iç içe 3 döngü içerisinde ekrana deneme yazdırılıyor (toplam 100&#215;256x10 tane) bu işlemin aldığı vakti ölçmek için gettimeofday fonksiyonundan faydalanılmış ve en sonunda da fark hesaplanmış. Burada eksik olan getdiff fonksiyonu aşağıdaki şekilde yazılabilir:</p>
<pre>float getdiff(struct timeval endtv, struct timeval starttv)
{
   float diff=0;
   diff=(endtv.tv_sec-starttv.tv_sec)*1000000+
   (endtv.tv_usec-starttv.tv_usec);
   return diff;
}</pre>
<img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/500363012" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2009/01/01/c-ile-zaman-islemleri/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2009/01/01/c-ile-zaman-islemleri/</feedburner:origLink></item>
		<item>
		<title>JSP Oturumları (JSP Sessions)</title>
		<link>http://feeds.feedburner.com/~r/BilgisayarKavramlari/~3/499888503/</link>
		<comments>http://www.bilgisayarkavramlari.com/2009/01/01/jps-oturumlari-jsp-sessions/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 00:57:47 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
		
		<category><![CDATA[Web Teknolojileri]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2009/01/01/jps-oturumlari-jsp-sessions/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER
JSP kullanarak bir oturumun takip edilmesi mümkündür. Basitçe bir kullanıcının siteye bağlanmasından başlayarak sitede yaptığı her işlemin takip edilmesi ve siteyle olan iletişiminin kayıt altında tutulması örneğin kullanıcı adı ve şifresinin bir kere sorulduktan sonra bütün sayfalardan erişilebilmesi mümkündür.
Bu işlem aslında web sunucusu (web server) üzerindeki bir oturum (session) ile yapılmaktadır. [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>JSP kullanarak bir oturumun takip edilmesi mümkündür. Basitçe bir kullanıcının siteye bağlanmasından başlayarak sitede yaptığı her işlemin takip edilmesi ve siteyle olan iletişiminin kayıt altında tutulması örneğin kullanıcı adı ve şifresinin bir kere sorulduktan sonra bütün sayfalardan erişilebilmesi mümkündür.</p>
<p>Bu işlem aslında web sunucusu (web server) üzerindeki bir oturum (session) ile yapılmaktadır. Kullanıcının verileri web sunucusunda durmaktadır ve JSP dosyaları bu bilgilere sunucu üzerinden erişmektedir. Nitekim sunucuya bağlanan her kullanıcı için ayrı bir oturum bilgisi bulunmakta ve bu bilgilerin takibini web sunucusu yapmaktadır.</p>
<pre><tt>&lt;HTML&gt;</tt></pre>
<pre><tt>&lt;BODY&gt;</tt></pre>
<pre><tt>&lt;FORM METHOD=POST ACTION="kaydet.jsp"&gt;</tt></pre>
<pre><tt>Adınız? &lt;INPUT TYPE=TEXT NAME=kullanici SIZE=20&gt;</tt></pre>
<pre><tt>&lt;P&gt;&lt;INPUT TYPE=SUBMIT&gt;</tt></pre>
<pre><tt>&lt;/FORM&gt;</tt></pre>
<pre><tt>&lt;/BODY&gt;</tt></pre>
<pre><tt>&lt;/HTML&gt;</tt></pre>
<p>Yukarıdaki kodda basit bir form oluşturulmuş ve form gönderilmesi (Submit) durumunda &#8220;kaydet.jsp&#8221; dosyasının çağrılması söylenmiştir.</p>
<p><img class="alignnone size-full wp-image-1632" title="jspoturum" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/jspoturum.jpg" alt="" width="413" height="235" /></p>
<p>Yukarıdaki  çalışmış halinden de görüleceği üzere bir metin kutusu (textbox) ve bir düğmeden (buton) oluşan yukarıdaki sayfada kutuya bir isim girilmesi ve &#8220;Sorguyu Gönder&#8221; düğmesine basılması ile sorgu sunucuya yollanacak ve kaydet.jsp dosyasına POST olarak parametre geçecektir.</p>
<p>Kaydet.jsp dosyasında ise :</p>
<pre>&lt;%</pre>
<pre>   String isim = request.getParameter( "kullanici" );</pre>
<pre>   session.setAttribute( "kullaniciIsmi", isim );</pre>
<pre>%&gt;</pre>
<pre>&lt;HTML&gt;</pre>
<pre>&lt;BODY&gt;</pre>
<pre>&lt;A HREF="deneme.jsp"&gt;Deneyelim Bakalım&lt;/A&gt;</pre>
<pre>&lt;/BODY&gt;</pre>
<pre>&lt;/HTML&gt;</pre>
<p>Yukarıdaki şekilde yazılmış olan kodda öncelikle POST olarak sayfaya gelen kullanıcı değeri bir JSP değişkenine (String tipindeki isim değişkenine) konulmuş ardından da session nesnesinin setAttribute fonksiyonu ile oturumda oluşturulan &#8220;kullaniciIsmi&#8221; isimli değişkene değeri atanmıştır.</p>
<p>Bir defa bu değişkene değer atandıktan sonra istenilen sayfadan bu değere ulaşmak mümkündür. Nitekim yukarıdaki sayfada bulunan bir bağlantı (link) ile gidilen deneme.jsp sayfasına herhangi bir bilgi geçirilmemiş olmasına rağmen :</p>
<pre>&lt;HTML&gt;</pre>
<pre>&lt;BODY&gt;</pre>
<pre>&lt;%= session.getAttribute( "kullaniciIsmi" ) %&gt; Sitemize hoş geldiniz.</pre>
<pre>&lt;/BODY&gt;</pre>
<pre>&lt;/HTML&gt;</pre>
<p>Kodunu içeren bu sayfadan kullaniciIsmi isimli oturum değişkenine (session variable) erişilerek ekrana basılmıştır.</p>
<img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/499888503" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2009/01/01/jps-oturumlari-jsp-sessions/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2009/01/01/jps-oturumlari-jsp-sessions/</feedburner:origLink></item>
		<item>
		<title>JSP Direktifleri (JSP Directives)</title>
		<link>http://feeds.feedburner.com/~r/BilgisayarKavramlari/~3/499888504/</link>
		<comments>http://www.bilgisayarkavramlari.com/2009/01/01/jsp-direktifleri-jsp-directives/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 00:56:57 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
		
		<category><![CDATA[Web Teknolojileri]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2009/01/01/jsp-direktifleri-jsp-directives/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER
JSP dilinde programlama başlamadan önce bazı direktifler vererek sayfada ön işlemler yapılması mümkündür. Örneğin basit bir JSP sayfası olan aşağıdaki kodu ele alalım:
&#60;html&#62;
&#60;body&#62;
            &#60;% System.out.println("deneme");
                java.util.Date tarih = new java.util.Date();
               out.println("Şu andaki tarih"+tarih);
                %&#62;
&#60;/body&#62;
&#60;/html&#62;
Yukarıdaki kodu aşağıdaki şekilde yazmak mümkündür.
&#60;%@ page import="java.util.*" %&#62;
&#60;HTML&#62;
&#60;BODY&#62;
&#60;%
    Date date = new Date();
    System.out.println( "Şu andaki tarih"+date [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>JSP dilinde programlama başlamadan önce bazı direktifler vererek sayfada ön işlemler yapılması mümkündür. Örneğin basit bir JSP sayfası olan aşağıdaki kodu ele alalım:</p>
<pre>&lt;html&gt;</pre>
<pre>&lt;body&gt;</pre>
<pre>            &lt;% System.out.println("deneme");
                java.util.Date tarih = new java.util.Date();</pre>
<pre>               out.println("Şu andaki tarih"+tarih);
                %&gt;</pre>
<pre>&lt;/body&gt;</pre>
<pre>&lt;/html&gt;</pre>
<p>Yukarıdaki kodu aşağıdaki şekilde yazmak mümkündür.</p>
<pre>&lt;%@ page import="java.util.*" %&gt;</pre>
<pre>&lt;HTML&gt;</pre>
<pre>&lt;BODY&gt;</pre>
<pre>&lt;%</pre>
<pre>    Date date = new Date();</pre>
<pre>    System.out.println( "Şu andaki tarih"+date );</pre>
<pre>%&gt;</pre>
<pre>&lt;/BODY&gt;</pre>
<pre>&lt;/HTML&gt;</pre>
<p>Yukarıdaki kodun ilk koddan farkı java.util paketinin projeye eklenmiş (import) olmasıdır. Bu sayede ilk kod örneğinde bulunan java.util.Date kullanımı yerine sadece Date sınıfı çağrılabilmektedir çünkü Date sınıfı çağrıldığında hangi paket (package) içerisinde aranacağı bir direktif olarak belirlenmiştir.</p>
<p>JSP Direktifleri ayrıca başka bir sayfayı projeye dahil ederek bu sayfanın içerisindeki komut veya fonksiyonların çağrılmasında da kullanılabilir:</p>
<pre>&lt;HTML&gt;</pre>
<pre>&lt;BODY&gt;</pre>
<pre>Tarihi basıyoruz: &lt;BR&gt;</pre>
<pre>&lt;%@ include file="tarih.jsp" %&gt;</pre>
<pre>&lt;/BODY&gt;</pre>
<pre>&lt;/HTML&gt;</pre>
<p>Örneğin ilk kodu tarih.jsp dosyasına kaydetmiş olalım. Yukarıdaki dosyadan tarih.jsp dosyasını çağırarak bu doyanın içerisindeki kodların çalışmasını sağlayabiliriz. Örneğin her tarih gerektiğinde bu dosyayı  dahil etmek (include) mümkündür</p>
<img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/499888504" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2009/01/01/jsp-direktifleri-jsp-directives/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2009/01/01/jsp-direktifleri-jsp-directives/</feedburner:origLink></item>
		<item>
		<title>JSP ve HTML</title>
		<link>http://feeds.feedburner.com/~r/BilgisayarKavramlari/~3/499888505/</link>
		<comments>http://www.bilgisayarkavramlari.com/2009/01/01/jsp-ve-html/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 00:55:57 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
		
		<category><![CDATA[Web Teknolojileri]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2009/01/01/jsp-ve-html/</guid>
		<description><![CDATA[Yazan  : Şadi Evren ŞEKER
JSP kodlarının arasında HTML ve HTML kodlarının arasında JSP kullanmak oldukça kolaydır. Kodlar arasında istenilen yerde JSP etiketleri açılarak veya kapatılarak diller arasında geçiş yapılabilir.
Örneğin aşağıdaki kodu ele alalım:
&#60;TABLE BORDER=1&#62;
&#60;%
for ( int i = 0; i &#60; n; i++ ) {
%&#62;
&#60;TR&#62;
&#60;TD&#62;Sayı:&#60;/TD&#62;
&#60;TD&#62;&#60;%= i+1 %&#62;&#60;/TD&#62;
&#60;/TR&#62;
&#60;%
}
%&#62;
&#60;/TABLE&#62;
Yukarıdaki kodda bir tablo içersine n adet satır eklenmekte [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan  : Şadi Evren ŞEKER</p>
<p>JSP kodlarının arasında HTML ve HTML kodlarının arasında JSP kullanmak oldukça kolaydır. Kodlar arasında istenilen yerde JSP etiketleri açılarak veya kapatılarak diller arasında geçiş yapılabilir.</p>
<p>Örneğin aşağıdaki kodu ele alalım:</p>
<pre>&lt;TABLE BORDER=1&gt;</pre>
<pre>&lt;%</pre>
<pre>for ( int i = 0; i &lt; n; i++ ) {</pre>
<pre style="padding-left: 30px;">%&gt;</pre>
<pre style="padding-left: 60px;">&lt;TR&gt;</pre>
<pre style="padding-left: 60px;">&lt;TD&gt;Sayı:&lt;/TD&gt;</pre>
<pre style="padding-left: 60px;">&lt;TD&gt;&lt;%= i+1 %&gt;&lt;/TD&gt;</pre>
<pre style="padding-left: 60px;">&lt;/TR&gt;</pre>
<pre style="padding-left: 30px;">&lt;%</pre>
<pre>}</pre>
<pre>%&gt;</pre>
<pre>&lt;/TABLE&gt;</pre>
<p>Yukarıdaki kodda bir tablo içersine n adet satır eklenmekte ve her satır için ekrana bir &#8220;sayı:&#8221; yazısı içeren bir de satır numarasını basan iki kolon eklenmektedir:</p>
<p><img class="alignnone size-full wp-image-1630" title="jsphtml" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/jsphtml.jpg" alt="" width="413" height="366" /></p>
<p>Yukarıdaki bu görüntü oluşturulurken aslında &lt;% &#8230; %&gt; etiketleri arasında bulunan JSP komutları bu etiketler dışında kalan HTML komutlarını n kere tekrar etmiştir. Görüldüğü üzere JSP komutları kullanılarak bir HTML yazısı döngü içerisinde tekrarlatılabilmektedir.</p>
<pre>&lt;%</pre>
<pre>    if ( gelen ) {</pre>
<pre>        %&gt;</pre>
<pre>        &lt;P&gt;gelen değişkeninin değeri true</pre>
<pre>        &lt;%</pre>
<pre>    } else {</pre>
<pre>        %&gt;</pre>
<pre>        &lt;P&gt;gelen değişkeninin değeri false</pre>
<pre>        &lt;%</pre>
<pre>    }</pre>
<pre>%&gt;</pre>
<p>Yukarıdaki kodda ise benzer şekilde bir if koşulunun (dallanması, çatallanması ,fork) içerisinde kontrol yapılarak duruma bağlı olarak bir mesaj ekrana bastırılmıştır. Hangi mesajın basılacağı JSP kodunda belirlenirken mesaj bastırma işlemi HTML içerisinde olmaktadır.</p>
<img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/499888505" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2009/01/01/jsp-ve-html/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2009/01/01/jsp-ve-html/</feedburner:origLink></item>
		<item>
		<title>JSP Etiketleri (JSP Tags)</title>
		<link>http://feeds.feedburner.com/~r/BilgisayarKavramlari/~3/499888506/</link>
		<comments>http://www.bilgisayarkavramlari.com/2009/01/01/jsp-etiketleri-jsp-tags/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 00:54:15 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
		
		<category><![CDATA[Web Teknolojileri]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2009/01/01/jsp-etiketleri-jsp-tags/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER
JSP dilinde 4 tip etiket kullanmak mümkündür:

Directives (Direktifler)
Declerations (Tanımlamalar)
Scriplets (JSP Kodları)
Expressions (İşlemler)

Yukarıdaki listedeki her etiketin tanımı aşağıda verilmiştir.
Directive Tags (Direktif etiketleri): &#60;%@  &#8230; %&#62; işaretleri arasındaki etiketlerdir. Bu etiketlerde dosyada kullanılacak olan harici dosyaların içeri aktarılması veya sayfa ile ilgili tanımlar gibi işlemler yapılır. Örnek :
&#60;%@ include file=&#8221;/header.jsp&#8221; %&#62;
Yukarıdaki satırda header.jsp [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>JSP dilinde 4 tip etiket kullanmak mümkündür:</p>
<ul>
<li>Directives (Direktifler)</li>
<li>Declerations (Tanımlamalar)</li>
<li>Scriplets (JSP Kodları)</li>
<li>Expressions (İşlemler)</li>
</ul>
<p>Yukarıdaki listedeki her etiketin tanımı aşağıda verilmiştir.</p>
<p><strong>Directive Tags (Direktif etiketleri): </strong>&lt;%@  &#8230; %&gt; işaretleri arasındaki etiketlerdir. Bu etiketlerde dosyada kullanılacak olan harici dosyaların içeri aktarılması veya sayfa ile ilgili tanımlar gibi işlemler yapılır. Örnek :</p>
<p>&lt;%@ include file=&#8221;/header.jsp&#8221; %&gt;</p>
<p>Yukarıdaki satırda header.jsp dosyası projeye dahil edilmiştir.</p>
<p>&lt;%@page contentType=&#8221;text/html&#8221; pageEncoding=&#8221;UTF-8&#8243;%&gt;</p>
<p>Yukarıdaki satırda ise sayfanın karakter kodlaması (charachter encoding) UTF tablo 8 olarak atanmıştır.</p>
<p><strong>Declaration Tags (Tanımlama etiketleri) </strong>&lt;%! &#8230; %&gt; işaretleri arasındaki kodlardır. Bu etiketler arasında da JSP dosyasında kullanılacak olan değişken ve fonksiyonların tanımlamaları yapılır</p>
<p>&lt;%!<br />
private String getName()<br />
{<br />
return &#8220;Sadi&#8221;;<br />
}</p>
<p>private int getAge()<br />
{<br />
return 35;<br />
}<br />
%&gt;</p>
<p>Yukarıdaki kodda iki farklı fonksiyon tanımlanmıştır. Bu fonksiyonlar kodun ilerleyen kısımlarında çağrılabilirler.</p>
<p><strong>Scriplets (JSP Betikleri)</strong> &lt;% &#8230; %&gt; işaretleri arasındaki kodlardır. Bu işaretler arasındaki kodlarda JSP&#8217;nin desteklediği bütün komutlar çalıştırılabilir ve JSP kodlarının bel kemiğini bu grup oluşturur.</p>
<p><strong>Expressions (İşlemler) </strong>&lt;%= &#8230; %&gt; işaretleri arasındaki kodlardır. Bu bölümler basit ekrana bastırma alanları olarak düşünülebilir. Örneğin out.println fonksiyonunu scirplet içerisinden çağırmak işlemiyle aynıdır. Bir değişken ismi yazılarak ekrana basılabilir.</p>
<p>&lt;%= sadi %&gt;</p>
<p>Yukarıdaki kodda sadi isimli değişkenin değeri ekrana bastırılmıştır. Dikkat edilirse bu tip etiketlerde ; (noktalı virgül) satır sonlarında bulunmaz.</p>
<img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/499888506" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2009/01/01/jsp-etiketleri-jsp-tags/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2009/01/01/jsp-etiketleri-jsp-tags/</feedburner:origLink></item>
		<item>
		<title>Netbeans ile JSP</title>
		<link>http://feeds.feedburner.com/~r/BilgisayarKavramlari/~3/499888507/</link>
		<comments>http://www.bilgisayarkavramlari.com/2009/01/01/netbeans-ile-jsp/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 00:49:08 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
		
		<category><![CDATA[Son Kullanıcı]]></category>

		<category><![CDATA[Web Teknolojileri]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2009/01/01/netbeans-ile-jsp/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER
Bu yazının amacı netbeans IDE(integrated development environment) ile basit bir JsP (Java server pages) uygulamasının nasıl hazırlandığını adım adım anlatmaktır. Basit ve giriş seviyesi bir uygulama başlatmak için aşağıdaki adımları izleyebilirsiniz. (Bu yazıda, bu yazı sırasındaki son sürüm olan netbeans ide 6.5 ve jdk 1.6 update 11 kullanılmıştır)

Yukarıdaki şekilde yeni bir [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>Bu yazının amacı netbeans IDE(integrated development environment) ile basit bir <a href="http://www.bilgisayarkavramlari.com/2009/01/01/1603/">JsP (Java server pages)</a> uygulamasının nasıl hazırlandığını adım adım anlatmaktır. Basit ve giriş seviyesi bir uygulama başlatmak için aşağıdaki adımları izleyebilirsiniz. (Bu yazıda, bu yazı sırasındaki son sürüm olan netbeans ide 6.5 ve jdk 1.6 update 11 kullanılmıştır)</p>
<p><a href="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/netbeans21.jpg"><img class="alignnone size-full wp-image-1612" title="netbeans21" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/netbeans21.jpg" alt="" width="470" height="341" /></a></p>
<p>Yukarıdaki şekilde yeni bir proje oluşturup Java Web Seçeneği altındaki &#8220;Web Application&#8221; seçeneği seçilir. Bu seçimden sonra aşağıdaki ekran açılır:</p>
<p><a href="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/nebeans3.jpg"><img class="alignnone size-full wp-image-1613" title="nebeans3" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/nebeans3.jpg" alt="" width="500" height="337" /></a></p>
<p>Bu ekranda oluşturulacak olan projenin ismi ve oluşturulacağı dizin bilgileri girilir:</p>
<p><a href="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/netbeans4.jpg"><img class="alignnone size-full wp-image-1614" title="netbeans4" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/netbeans4.jpg" alt="" width="500" height="341" /></a></p>
<p>Proje bilgileri girildikten sonra projemizin test ve çalıştırılması için hangi sunucu tipini istediğimizi seçiyoruz. Daha genel ve kullanım yaygın olması hasebi ile Apache Tomcat kullanmanız tercih edilebilir. Ya da sağladığı ilave özlelliklerden dolayı glass fish bir alternatif olabilir.</p>
<p><img class="alignnone size-full wp-image-1615" title="netbeans5" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/netbeans5.jpg" alt="" width="500" height="342" /></p>
<p>Projede ilave framework kullanılması isteniyorsa (ki bu basit örneğimiz için gerekmemektedir) son ekrandan seçilebilir. En nihayetinde finish düğmesi ile proje oluşturulur:</p>
<p><img class="alignnone size-full wp-image-1616" title="netbeans6" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/netbeans6.jpg" alt="" width="500" height="287" /></p>
<p>Oluşan bu ekranda projeyi test etmek için RUN düğmesine basıyoruz. (klavyeden F6 veya F9 tuşları, proje alanında üstteki çalıştırma düğmesi (play tuşuna benzeyen tuş) veya projenin üzerinde sağ tuşla açılan menüden run bu işi yapmaya yarayan alternatiflerdir)</p>
<p><a href="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/netbeans7.jpg"><img class="alignnone size-full wp-image-1617" title="netbeans7" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/netbeans7.jpg" alt="" width="413" height="235" /></a></p>
<p>varsayılan göstericimiz (web browser) ile oluşturduğumuz yeni proje görüntülenmektedir. Tabi bu işlemler sırasında açık değilse Tomcat sunucu açılır ve ayarlandığı porttan sunmaya başlar (bu örnekte 8080 portundan)</p>
<p><img class="alignnone size-full wp-image-1618" title="netbeans8" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/netbeans8.jpg" alt="" width="500" height="283" /></p>
<p>Projemizdeki bu sayfada kullanılmak üzere bir form oluşturmamız mümkün. Bunun için sağ tarafta bulunan araç kutusundan Form seçeneğini projeye sürükleyip bırakıyoruz. formumuzun action kısmına index.jsp yazarak yine aynı sayfanın yüklenmesini sağlıyoruz.</p>
<p><img class="alignnone size-full wp-image-1619" title="netbeans9" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/netbeans9.jpg" alt="" width="500" height="334" /></p>
<p>Ardından bir texarea (çok satırlı metin kutusu) ekleyip ismini cevap yapıyoruz</p>
<p><img class="alignnone size-full wp-image-1620" title="netbeans10" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/netbeans10.jpg" alt="" width="500" height="255" /></p>
<p>Son olarak yukarıda gösterildiği üzere bir metin kutusu ve aşağıda gösterildiği üzere bir gönderme düğmesi (submit button) ekliyoruz:</p>
<p><img class="alignnone size-full wp-image-1621" title="netbeans11" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/2009/01/netbeans11.jpg" alt="" width="500" height="267" /></p>
<p>Bu işlemler tamamlandıktan sonra projemizde bir formumuz içinde bir textarea, bir textfield ve bir butn olmuş oluyor.</p>
<img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/499888507" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2009/01/01/netbeans-ile-jsp/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2009/01/01/netbeans-ile-jsp/</feedburner:origLink></item>
	</channel>
</rss>
