BOOTSTRAP UYGULAMA-1

<!DOCTYPE html>
<html lang="en">
   <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
     

    <!-- Bootstrap CSS -->
       <link rel="stylesheet" type="text/css" href="css/fontawesome-all.min.css"/>
        <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/>
        <link rel="stylesheet" type="text/css" href="css/main.css"/>
       <link href="https://fonts.googleapis.com/css?family=Indie+Flower" rel="stylesheet">
       <link href="https://fonts.googleapis.com/css?family=Caveat" rel="stylesheet">
       <title>CODINGISLIFE</title>

    </head>
<body>
   
    <section id="cover">
        <div class="container">
            <div class="row">
                <nav class="navbar navbar-toggleable-sm fixed-top navbar-expand-lg navbar-light bg-green">
                    <a class="navbar-brand" href="#"><img src="img/logo.png" alt="CODINGISLIFE"/></a>
              <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
              </button>
              <div class="collapse navbar-collapse justify-content-end" id="navbarNav">
                <ul class="navbar-nav">
                  <li class="nav-item">
                    <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
                  </li>
                  <li class="nav-item">
                    <a class="nav-link" href="#">Code</a>
                  </li>
                  <li class="nav-item">
                    <a class="nav-link" href="#">About</a>
                  </li>
                  <li class="nav-item">
                    <a class="nav-link " href="#">Contact</a>
                  </li>
                </ul>
              </div>
            </nav>
        </div>
            <div class="row text-center">
                <div class="col-sm-12">
                    <h1>CODINGISLIFE</h1>
                </div>
                <div class="col-sm-12">
                    <h2>HOW IS IT GOING ?</h2>
                </div>
                  <div class="col-sm-12">
                   <a href="#"><button type="buton" class="btn btn-secondary">GO TO CODE</button></a>
                </div>
            </div>
    </div>
</section>
   
     
      <script src="js/jquery-3.3.1.min.js"></script>
      <script src="js/bootstrap.min.js"></script>
      <script src="js/main.js"></script>
  </body>
</html>

-------------------------Main.css------------------------
html,
body,
#cover{
    height: 100%;
}
#cover{
    background:url('../img/sec.jpg') no-repeat center fixed;
    -webkit-background-size:cover;
}
.fixed-top{
    max-width: 1140px;
    margin:0px auto;
    margin-top: 30px;
}
h1{
    margin-top:15%;
    font-family: 'Indie Flower', cursive;
    font-size 45px;
    color:#ffffff;
    font-style:italic;
}
h2{
    font-family: 'Caveat', cursive;
    color:#ffffff;
}
.btn-secondary{
    background-color: yellow;
    color: red;
    font-size: 30px;
    padding:40x 40px;
}
a.nav-link{
    color:white !important;
   
}



Uygulamamızdaki önemli yerler değinelim.İlk olarak section ile başladık çünkü bu uygulamadaki amacımız bir web sitesinin üst kısmını tasarlamak.Daha sonra bunun için konteynır'ı kullandık nedeni belli bir bölge yaratmaktı.Oluşturduğumuz bölgeleri satırlara böldük.Ve en üst tarafta logo ve menü
kısmını tasarlamak için nav etiketini ve gerekli bootstrap.css class'larından faydalandık.Ve daha sonra menumuzu tasarlamak için <li> etiketlerinden faydalandık.Tabi ki burada da bootstraptan faydalandık.Bootstrapsız bu işi yapmaya çalışsaydık,boyutlarından renklerine,renklerinden liste özelliklerine herşeyi ayarlamamız gerekecekti.Size tavsiyem bir önceki yazımızdaki şekilde bootstrap'ı kurup paylaşacağım örnekleri satır satır deneyerek çalıştırıp öğrenmeniz.Giriş düzeyinde anlattım fakat sonraki örneklerde anlatma olmayacak.Önemli olan bu kodları uygulamak.Bootstrap'ı çok iyi bir şekilde öğrenmek istiyorsanız yapmanız gereken tek şey bol örnek.

İYİ ÇALIŞMALAR...

DURUM GEÇİŞ TABLOLARI

Bu yazımızda dün çözdüğümüz örneğin durum geçiş tablosuna göz atacağız.Örneği anlamadan direkt buraya atlamanızı tavsiye etmem.O örnekte durum geçiş şemasını oluşturmuştuk.Bu örnekte ise durum geçiş tablosunu oluşturacağız.



Tablomuzdan kısaca bahsedecek olursak Mevcut durumumuz A=0 B=0' dan başlayalım.Tıpkı bir önceki örnekte olduğu sonraki durumu buluyor.Sonraki durum önceki durum ile aynı idr o durum konumunu koruyordu.Sonraki durum A=0 B=0 konumunu korur.x=1 olduğunda A=0 B=1 01 durumuna geçer.Bu arada Y' değerimizide unutmuyoruz.Anlayacağınız durum geçiş şemasını çizerseniz.Bu tabloyu çıkartmak o kadar da zor değil.Şimdi tek tek A ve B flip flopu için bakalım.
Burada A' x=0'da hangi noktalarda "1" sorusuna cevap arayıp bunları lojik olarak yazacağız.Bunun amacı tabloyu terimler ile ifade edebilmektir.

Bir sonraki yazımızda durum indirgemelere bakmaya çalışacağız.İYİ ÇALIŞMALAR

ARDIŞIL DEVRE ANALİZİ-2

Bir örnek üzerinden devam edelim.

Örnek

    Aşağıda verilen mantık devresi ardışıl bir fonksiyon gerçekleştirmektedir.Devrenin girişi "x" çıkışı "y",durumlar ise "A-B" çiftidir.Durum geçiş şemasını oluşturunuz...

Sorumuzda bize verilen yerler...


Yazımdan dolayı özür diliyorum :) Amacımızın öğrenmek olduğunu düşününce yazının pek öneminin kaldığı söylenemez zaten :)

Çözüm



Öncelikle inceleyeceğimiz 4 durumumuz var.A=0,0,1,1 B=0,1,0,1 değerlerini tek tek incelememiz gerekiyor.Bununla birlikte A=0 B=0 X=0 ve A=0 B=0 X=1 için de ayrı ayrı hesaplamalıyız.Yukarıda yaptığımız tek şey A,B ve X değerlerini yerine koyarak Rb,Sb ve Ra,Sa yı bulmak.Burada bulduğumuz değerlere göre A ve B nin yeni değerlerini buluyoruz.Bu yeni değerlerden durum değişikli olup olmayacağını bulup  hangi X ve Y değerlerinde durum değişikliğinde olduğunuda durum dairemizin üzerine yazıyoruz.Örneğin A=0 B=1 Sa=1 Ra=0 ve Sb=0 Rb=1 değerlerini elde ettik.A'nın yeni değeri 1 olacaktır.Çünkü R-S flip flopta set'leme söz konusu.Diğer tarafta B=0 olacaktır.Çünkü bir resetleme söz konusudur.Yeni değerlerimi A=1 B=0 yani 10 durumumuza gideceğiz.Bu duruma hangi X ve Y değerleri ile gittiğimiz okumuzun üzerine yerleştiriyoruz..Birkaç soru çözdükten sonra işiniz gerçekten basit..Bir sonraki yazımızda bu sorunun Durum geçiş tablosunu tasarlayıp bazı işlemler yapacağız.

İYİ ÇALIŞMALAR...


ARDIŞIL DEVRE ANALİZİ-1

1-DURUM GEÇİŞ ŞEMASI YÖNTEMİ
2-DURUM GEÇİŞ TABLOSU YÖNTEMİ
3-DURUM DENKLEMLERİ

Sırası ile bu işlemeleri gözden geçirelim...

1-DURUM GEÇİŞ ŞEMASI

     Devrenin her bir durumu devre ile durumlar arasındadır.Geçişler ise daireleri birbirine bağlayan yönlü oklar ile gösterilir.Her dairenin içinde ki 2'li sayi dairenin temsil ettiği durumu tanımlar.Geçişleri gösteren oklar üzerine ise söz konusu durum geçişinin hangi girdilerle gerçekleştiği ve çıktının ne olduğu yazılır.Bu gösterim için '/' işareti kullanılır.Kesme işaretinin soluna girdi sağına çıktı yazılır..

Şimdi bir tam toplayıcı devresi üzerinden bellirttiğimiz adımlardan faydalanarak devrenin geçiş şemasını çizelim..







Di eldemizin 0 olduğu,Dj eldemizin 1 olduğu durumdur.İlk satır ile başlayacak olursak bakın A=0,B=0,TOPLAM(SUM)=0 bu durumda elde değerimiz 0 olur.Bu durum Di=0'dan başladı öyle değil mi ? Peki şimdi ne oldu ?Değerimiz 0'dı 0 kaldı.Değerimiz değişmediği için ok'u kendi durumumuza(state) geri döndürüyoruz.Eldemizin 1 olduğu durumlarda da Dj durumumuza geçiyoruz.Yazım kuralımıza bakacak olursak örneğin 1,1/0 A=1 B=1 Toplam=0 Elde=1 olduğundan durum değiştirdik..Otomat dersi alan aslında bunun bir nevi mealy makinesi olduğunu görmüştür.Yukarıda da belirttiğimiz gibi ilk giriş/çıkış şeklinde yazılıyor.

Yazılarımda normal konuşma dilini kullandığımdan noktalama işaretlerini gözden kaçırıyor olabilirim.Bu gibi durumları iletişimden(footer bölümünden) bana bildirebilirseniz mutlu olurum.

İYİ ÇALIŞMALAR...

BOOTSTRAP NEDİR ? NASIL KULLANILIR ?


Twitter Bootstrap açık kaynak kodlu, web sayfaları veya uygulamaları geliştirmek için kullanılabilecek araçlar bütünü ve önyüz çatısı. Bootstrap, web sayfaları veya uygulamalarında kullanılabilecek, HTML ve CSS tabanlı tasarım şablonlarını içerir.Bootstrap ile çok basit şekilde profesyonel web sitesi şablonları hazırlayabilirsiniz..
Şimdi bootstrap framework'unu nasıl kullanırız ona değinelim öncelikle buradan bootstrap'ı indiriyoruz.


Daha sonra jquery'i indirip bootstrap'ı indirdiğimiz klasöre atıyoruz.Jquery'de bir javascript kütüphanesidir.Tasarımlarımızı yaparken bize yardımcı olacak.Onuda buradan indirebilirsiniz.



Şimdide bir editör gerekiyor.Ben size Brackets'i öneriyorum.Ve onuda buradan indirebilirsiniz.
Şimdide nasıl kullanacağımıza bir göz atalım.



Klasörümüz bu şekilde olacak bootstrap klasörünün içinde bir index.html ve css dosyasının içinde main.css adında iki dosyayıda bizim oluşturmamız gerekiyor.Projemizi index.html üzerine ve bootstrap'ın etkisiz olduğu yerde kendi yazdığımız css kodlarını barındıracak bir main.css dosyası..

Daha sonra bu dosyayı brackets'tan açıp kodlarımızı yazmaya başlayalım..



NOT ! ! ! BOOTSTRAP'I öğrenmek için temel bir html ve css bilgisi gerekmektedir.

Yukarıda dosyalarımızı açıp burada index.html sayfasına ilgili css ve script class'larını ekledik.Bildiğiniz üzere css ve script dosyalarımızı index.html sayfasına import etmez isek bu dosyaları kullanamayacağız..

Şimdilik kısa bir giriş yaptık.Merak etmeyin bootstrap'tı en ince ayrıntısına kadar öğreneceksiniz...

İYİ ÇALIŞMALAR...

PHP İLE HAVA DURUMU BOTU



<?php
$sehir=@file_get_contents("http://www.nkfu.com/turkiye-81-il-listesi/");
preg_match_all('@<td width="143">(.*?)</td>@si',$sehir,$sehirler);
function getir($key){
if(isset($_POST[$key]))
return $_POST[$key];
}
if(count($_POST)>0){
$sehirim=getir("sehirr");

$degisecek=["ğ","ı","ş","I","ö","Ç","ç","ü","Ş"];
$yeni=["g","i","s","i","o","C","c","u","S"];
$sehirim=str_replace($degisecek,$yeni,$sehirim);
$veri=@file_get_contents("http://www.mynet.com/havadurumu/asya/turkiye/".$sehirim."");
preg_match_all('@<span class="hvDeg1">(.*?)</span>@si',$veri,$enYuksek);
preg_match_all('@<span class="hvDeg2">(.*?)</span>@si',$veri,$enDusuk);
preg_match_all('@<span class="hvMood">(.*?)</span>@si',$veri,$hvMood);
preg_match_all('@<span class="hvDay">(.*?)</span>@si',$veri,$hvGun); }
?>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form method="POST" >
<select name="sehirr" >
<?php for($i=0;$i<=81;$i++) echo "<option value='".$sehirler[0][$i] = strip_tags($sehirler[0][$i])."'>".$sehirler[0][$i]."</option>";?>

</select>
<input type="submit" value="Göster"></br></br>
</form>
<table border="4" style="margin-left:200px">
<tr><td colspan="6" style="text-align:center"><?php $s=strtoupper($sehirim); echo $s;?> 5 GÜNLÜK HAVA DURUMU</td>
<tr>
<td>GÜNLER</td>
<td><?php echo @$hvGun[0][0]?></td>
<td><?php echo @$hvGun[0][1]?></td>
<td><?php echo @$hvGun[0][2]?></td>
<td><?php echo @$hvGun[0][3]?></td>
<td><?php echo @$hvGun[0][4]?></td>
</tr>
<tr>
<td>DURUM</td>
<td><?php
$durum=strip_tags(str_replace($degisecek,$yeni,$hvMood[0][0]));
if($durum=="Yagisli") echo "<img src='rain.png'/>";
else if($durum=="Parcali Bulutlu") echo "<img src='parcali.png'/>";
else if ($durum=="Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Hafif Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Cok Bulutlu") echo "<img src='bulutlu.png'/>";
else if ($durum=="Gunesli") echo "<img src='gunesli.png'/>";

?></br>
<?php echo @$hvMood[0][0] ?>

</td>

<td><?php
$durum=strip_tags(str_replace($degisecek,$yeni,$hvMood[0][1]));
if($durum=="Yagisli") echo "<img src='rain.png'/>";
else if($durum=="Parcali Bulutlu") echo "<img src='parcali.png'/>";
else if ($durum=="Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Hafif Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Cok Bulutlu") echo "<img src='bulutlu.png'/>";
else if ($durum=="Gunesli") echo "<img src='gunesli.png'/>";

?></br><?php echo @$hvMood[0][1]?></td>
<td><?php
$durum=strip_tags(str_replace($degisecek,$yeni,$hvMood[0][2]));
if($durum=="Yagisli") echo "<img src='rain.png'/>";
else if($durum=="Parcali Bulutlu") echo "<img src='parcali.png'/>";
else if ($durum=="Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Hafif Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Cok Bulutlu") echo "<img src='bulutlu.png'/>";
else if ($durum=="Gunesli") echo "<img src='gunesli.png'/>";

?></br><?php echo @$hvMood[0][2]?></td>
<td><?php
$durum=strip_tags(str_replace($degisecek,$yeni,$hvMood[0][3]));
if($durum=="Yagisli") echo "<img src='rain.png'/>";
else if($durum=="Parcali Bulutlu") echo "<img src='parcali.png'/>";
else if ($durum=="Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Hafif Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Cok Bulutlu") echo "<img src='bulutlu.png'/>";
else if ($durum=="Gunesli") echo "<img src='gunesli.png'/>";

?></br><?php echo @$hvMood[0][3]?></td>
<td><?php
$durum=strip_tags(str_replace($degisecek,$yeni,$hvMood[0][4]));
if($durum=="Yagisli") echo "<img src='rain.png'/>";
else if($durum=="Parcali Bulutlu") echo "<img src='parcali.png'/>";
else if ($durum=="Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Hafif Kar Yagisli") echo "<img src='kar.png'/>";
else if ($durum=="Cok Bulutlu") echo "<img src='bulutlu.png'/>";
else if ($durum=="Gunesli") echo "<img src='gunesli.png'/>";

?></br><?php echo @$hvMood[0][4]?></td>

</tr>
<tr>
<td>EN YÜKSEK SICAKLIK</td>
<td><?php echo @$enYuksek[0][0]?></td>
<td><?php echo @$enYuksek[0][1]?></td>
<td><?php echo @$enYuksek[0][2]?></td>
<td><?php echo @$enYuksek[0][3]?></td>
<td><?php echo @$enYuksek[0][4]?></td>
</tr>
<tr>
<td>EN DÜŞÜK SICAKLIK
<td><?php echo @$enDusuk[0][0]?></td>
<td><?php echo @$enDusuk[0][1]?></td>
<td><?php echo @$enDusuk[0][2]?></td>
<td><?php echo @$enDusuk[0][3]?></td>
<td><?php echo @$enDusuk[0][4]?></td>
</tr>
</table>
</body>
</html>

BELLEK ÇEŞİTLERİ (SALT-OKU BELLEKLER)

1)SALT OKU BELLEKLER

   1.1)Salt Oku Bellek (ROM)

        Bu bellek tür bellek türene bilgi yazılması, sadece üretim sırasında yapılabilir.Yarı iletken malzemeden bellek yapılırken kullanılan maskeler,belleğin içermesi gereken bilgileri oluşturacak şekilde hazırlanır.

  1.2)Programlanabilir Salt Oku Bellek (PROM)

       Üretildikleri an bütün gözeleri 0 veya 1 ile yüklü belleklerdir.Her bellek gözesi içinde bir sigorta bulunmaktadır.Bu sigortalar özel bir yöntem ve aygıt aracılığı ile arttırılabilir.Bir gözenin sigortasının atmış olması o gözenin konumunun değişmesi demektir.

 1.3)Silinebilir Programlanabilir Salt Oku Bellek

        Defalarca okunup silinebilen bu bellekler 3' e ayrılır.Şimdi bunları gözden geçirelim..


              1.3.1)EPROM

                        EPROM'lar üretildiklerinde tüm bellek gözeleri 1 konumundadır.1 konumunda olan gözelerden istenenler,özel yöntemler ve aygıtlarla 0 konumuna geçebilir.Mor ötesi ışığın yarı iletken üzerine belli bir süre tutulması sonunda,tüm gözeler 1 konumuna gelir.Böylece EPROM silinmiş olur.Bu silinme tek bir göze yapılamaz.Tüm bellek silinmiş olur.Tekrar programlanma yeteneği olduğundan ROM'dan pahalıdır.
             
            1.3.2)EEPROM
                          
                     Silinebilir ve programlanabilir belleklerin en gelişmiş olanı,elektriksel olarak silinebilen salt oku belleklerdir.Bu belleklerde,bellek gözlerine istenen bir değer yazılabilir ve yazılan bu bilgi yeni bir yazmaya kadar kalır.Bellek gözesine yazılan bilgi 0 ve 1'lerden oluşabilir.EEPROM'un silinmesi tüm gözelerin 0'a bağlı olmasıdır.

            1.3.3)FLASH

                     EEPROM'un özel bir biçimidir.Flash belleğe yazmadan önce,veri yazılacak bellek bölgesinin silinmesi gerekir.Daha sonra, yazılacak veriler küme halinde yazılır...




       

BELLEK

       Bilgisayarın çalışmasına yön verecek programı ve programın üzerinde çalışacağı verileri saklamak için bellek kullanılmaktardır.
 Eskiden kullanılan bir sürü bellek çeşidi yerini şimdiki zamanlarda kullanılan yarıiletken belleklere bıraktı.Yarı iletken bellekler eskiden kullanılan çekirdek belleklere göre çok daha ucuz ve kullanışlıdır.Yarı iletken bellekler kullanılırken enerjiye ihtiyaç duyarlar ve enerjileri kesilirse çalışmazlar.Bu nedenle yani bilgileri tutmak amacıyla iki tür bellek geliştirilmiştir.

1-Salt Oku Bellekler
2-Oku/Yaz Bellekler

1-Salt Oku Bellekler
    
     Bilgisayarda sürekli kalması istenen bilgilerin saklanması için kullanılan bellek türleridir.Özel amaçlı ve sabit programla çalışan bilgisayarların programları ile bilgisayar açıldığında kullanıcıya hizmet verecek yol verme programları bu tür belleklere yazılmalıdır.Şimdi diyeceksiniz ki madem bu bellekler salt oku bellek biz bunlara nasıl program yazabiliyoruz.Bunlar üretilirken bu programlar özel araçlarla yazılıyor.Anlayacağınız bilgisayarınızın açılması görüntünün ekrana gelmesi klavye tuşlarının algılanması bunlar bedavadan olan şeyler değil.İşte bu gibi programları bilgisayar üreticisi bu bellekleri üretirken ayarlıyor.
2-Oku/Yaz Bellekler

   Bilgisayar içindeki kullanıcı programının yazılacağı veya verilerin yazılacağı bellek türü oku/yaz bellektir.İşte bu bellekler biz kullanıcılara hitap ediyor..

Bir sonraki post'umuzda bu belleklerin çeşitlerini inceleyeceğiz.

İYİ ÇALIŞMALAR...




BUYRUKLAR

Bilgisayarın nasıl çalıştığını anlatmak üzere verilen örnekten de anlaşıldığı gibi,belli işlemleri bilgisayara yaptırabilmek için,işlemler adımlara ayrıştırılmaktadır.Bilgisayara neyi nasıl yapacağını yani nasıl çalışacağını anlatan adımlara buyruk diyoruz.Buyrukların tarihsel gelişimi üzerinde fazla durmak istemiyorum.Kısaca deyinelim...

Buyruklar başlangıçta 5 bölümden oluşyordu.Bu bölümler Komut-1.İşlenen adresi-2.işlenen adresi-Sonucun adresi ve bir sonraki buyruğun adresi.Bir önceki örneğimizi hatırlayacak olursak X ile Y yi toplamıştık.Bakın yukarıdaki 5 bölümde adımlar şu şekilde ilerliyor.X ve Y toplanıyor sonuc başka bir yere yazılıyor.Daha sonra kalınan buyruk adresinde yola devam ediliyor.Şimdi biz bu işlemleri sadeleştirebildiğimiz kadar sadeleştirip en yalın buyruk tanımını bulalım...

1-İlk olarak belleğimizdeki buyrukların sırayla çalıştığını var sayalım.Böylece bir sonraki buyruğun adresini tutmak zorunda kalmayacağız.

2-X ve Y 'yi toplayıp Z'ye yazdık.Öyle değil mi? peki ya X+Y işlemini x veya y register'ına yazamaz mıyız ?Böylece Sonucun adresine de gerek kalmadı...

3-Bu adımda devreye karşımıza  ACC (akümülatör) çıkıyor.Bu X ve Y sayılarının bir tanesini orada depolayabiliriz o halde.Elimizde komut satırımız ACC ve X kaldı.Buyruğumuzun son hali budur.

KOMUT-KÜTÜK ADI-İŞLENEN ADRESİ

Günümüzde de sıfır,bir ve iki adresli buyruklar birlikte kullanılmaktadır...


JSP-JAVABEANS

Şimdi yapacağımız örnekte bir java sınıfı oluşturacağız.Sonrada JSP sayfamızda bulundan formda bu verileri çekip java class yardımı ile başka bir JSP sayfasında göstereceğiz.Yani OOP nimetlerinden faydalanacağız...Örneğimizde basit bir HTML form'u,Set ve Get metodları bulunduran bir java class'ı ve çıktıyı JavaBeans ile görüntüleyecek bir JSP sayfası..Şimdi Java class'ımızdan başlayalım...

package paket;

public class beansClass{
String ad;
String soyad;
String telefon;
int yas;
String cinsiyet;
String ulke;
String tecrube;
String meslek;
String adres;
        public void setAdres(String deger){
            adres=deger;
        }
public void setAdi(String deger){
ad=deger;
}
public void setSoyadi(String deger){
soyad=deger;
}
public void setTelefon(String deger){
telefon=deger;

}
public void setCinsiyet(String deger){
cinsiyet=deger;

}
public void setUlke(String deger){
ulke=deger;

}
public void setTecrube(String deger){
tecrube=deger;
}
public void setYas(int deger){
yas=deger;

}
public String getAdi(){ return ad;}
public String getSoyadi(){ return soyad;}
public String getTelefon(){ return telefon;}
public String getCinsiyet(){ return cinsiyet;}
public String getUlke() {return  ulke;}
public int getYas(){ return yas;}
public String getTecrube(){ return tecrube;}
        public String getAdres() {return adres;}
}

Bahsettiğimiz üzere classmızda set ve get fonksiyonları bulunuyor.Bu fonksiyonlar ile nesnelerimize istediğimiz işlemlerden sonra bir başka JSP sayfasına aktarabilir.Bu gerçekten harika bir özellik öyle değil mi?Neyse devam edelim.Şimdi HTML formumuzu oluşturalım..


<%--
    Document   : beansJsp
    Created on : 21.Şub.2018, 13:54:32
    Author     : Gökhan
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
</head>
<body>
<form method="post" action="formuAlan.jsp">
<table border="2">
<tr>
<td>Adı : </td>
<td><input type="text" name="adi"/></td>
</tr>
<tr>
<td>Soyadı : </td>
<td><input type="text" name="soyadi"/></td>
</tr>
<tr>
<td>Adresi : </td>
<td><textarea name="adres" cols="20" rows="2" id="adres"></textarea></td>
</tr>
<tr>
<td>Telefon : </td>
<td><input type="text" name="telefon"/></td>
</tr>
<tr>
<td>Cinsiyet : </td>
<td>
<input type="radio" name="cinsiyet" value="Erkek" checked/>ERKEK
<input type="radio" name="cinsiyet" value="Bayan"/>BAYAN
</td>
</tr>
<tr>
<td>Ülke : </td>
<td>
<select name="ulke">
<option value="" selected>Lütfen ülkenizi seçiniz...</option>
<option value="Turkiye">TÜRKİYE</option>
<option value="ABD">ABD</option>
<option value="Peru">PERU</option>
<option value="Şili">ŞİLİ</option>
</td>
</select>
</tr>
<tr>
<td>Tecrübe Yılı</td>
<td>
<select name="tecrube"/>
<option value="">Lütfen tecrübe yılınızı seçiniz...</option>
<option value="0-2 YIL">0-2 YIL</option>
<option value="2-5 YIL">2-5 YIL</option>
<option value="5-7 YIL">5-7 YIL</option>
<option value="7+ YIL">7+ YIL</option>
</select>
</td>
</tr>
<tr>
<td>
<input type ="submit" name="gonder" value="DEĞERLERİ GÖNDER"/>
<input type ="reset" name="sil" value="DEĞERLERİ TEMİZLE"/>

</td>
</tr>
</table>

</form>

</body>
</html>



Daha sonra bizi çıktıya yönlendirecek olan bir JSP sayfasını kodlayalım..İşte JavaBeans'in nimetlerinden burada yararlanıyoruz.

<%--
    Document   : formuAlan
    Created on : 21.Şub.2018, 13:55:52
    Author     : Gökhan
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<jsp:useBean id="paket" type="paket.beansClass" class="paket.beansClass" scope="session" />
<jsp:setProperty name="paket" property="*"/>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
</head>
<body>
    Formu göstermek için tıklayın-->
    <a href="beansFormu.jsp">Beans Formunu Göster </a>     
</body>
</html>









Kodumuza dikkatli bakacak olursak 
useBean ve setProperty bunları kesinlikle java sayfamıza eklememiz gerekiyor.Bunlar bize bean'imizi kullanmamızı sağlıyor..useBean java classımızın yerini setPropert fonksiyonları kullanmamızı sağlıyor..

Ve şimdide son aşama çıktıları görüntüleme aşaması

<%-- 
    Document   : beansFormu
    Created on : 21.Şub.2018, 14:01:18
    Author     : Gökhan
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<jsp:useBean id="paket" type="paket.beansClass" class="paket.beansClass" scope="session"/>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
</head>
<body>
    <table border="2">
<tr>
<td>Adı : </td>
                                <td><%= paket.getAdi() %> </td>
</tr>
<tr>
<td>Soyadı : </td>
<td><%= paket.getSoyadi() %> </td>
</tr>
<tr>
<td>Adresi : </td>
<td><%= paket.getAdres() %> </textarea></td>
</tr>
<tr>
<td>Telefon : </td>
<td><%= paket.getTelefon() %> </td>
</tr>
<tr>
<td>Cinsiyet : </td>
<td>
<%= paket.getCinsiyet() %> 
</td>
</tr>
<tr>
<td>Ülke : </td>
<td>
<%= paket.getUlke() %> 
</td>
</select>
</tr>
<tr>
<td>Tecrübe Yılı</td>
<td>
<%= paket.getTecrube() %>
</td>
</tr>
</table>
</body>
</html>


Benim en sevdiğim aşama.Burada en güzel kod parçası istisnasız <%=paket.getAd() %>
Yani nesnelerimizi çağırdığımız kod parçası bunu seviyorum.Sizlerde seveceksiniz çünkü ileride gerçekten hayatınızı bile kurtarabilecek bir fonksiyon.


İYİ ÇALIŞMALAR


E-R(ENTITY RELATIONSHIP MODEL) MODELİ

Veritabanı tasarımında kullanılan ilişkisel veritabanı yönetim sistemlerinin (RDBMS) temelini oluşturur.

E-R Modelinin temel yapıları

1-Varlık (Entity) = Veritabanında oluşturulacak nesneleri temsil eden yapılardır. Veritabanı üzerinde bulunan tablolar ER diyagramlar için Varlık olarak kabul edilir.


2-Nitelik (Attiribute) = ER varlıklarının sahip olduğu her bir alana verilen yapılardır. Veritabanı alanında örnek olarak tablo sütünları verilebilir.


3-İlişki (Relationship) = Varlıklar arasında kurulan fiziksel ve mantıksal bağlantıları temsil eden yapılara denir.

E-R DİYAGRAMLARI

Bu diyagramlara bir örnek üzerinde göz atalım.E-R diyagramı ile tasarlanmış bir veritabanını yorumlayalım...



Yukarıda Hasta Kartı ve Sağlık verileri bizim tablolarımız yani varlıklarımız..Yanda görülen hastaKartiID primary key niteliği diğerleri nitelik.Ortadaki ilişkimiz 1'e 1 ilişki yani okuyacak olursak.Bir hasta kartı,bir sağlık verisi barındırır.Diyelim ki sizin hasta kartınızın id'si 15.Bu id Primary key olduğundan diğer tüm niteliklerinize erişim sağlanacaktır.15 Nolu hasta Gökhan hasta Id'si 123123 diye...Şimdi biraz daha karışık bir örneğe bakalım...


Bakın bir önceki örneğimizin neredeyse aynısı burada kitaplar ile ilgili bilgiler verilmiş.N-N (Çoğa çok) ilişkilerden birkaç tanesini okuyup bir diğer örneğe geçelim.Örneğin N kitabın 1 yazarı olabilir.Yani bir yazarın birkaç kitabı olabilir.Uyeler birden fazla kitabı sepete ekleyebilir.1 yayınevi birden fazla kitap yayınlayabilir gibi gördüğünüz gibi yapı çok basit.Sizlerde böyle örnekleri çizip anlamaya çalışırsanız bu modeli veritabanlarınızın giriş aşamalarında kullanabilirsiniz.



   E-R model örnekleri ile ilgili görsel sonucu

İşte gerçek bir örnek.Belki de bunun çok daha büyüklerine iş hayatınızda rastlayacak.Veya sizde böyle bir modeli tasarlamanız istenecektir.Göz korkutucu olduğunun farkındayım fakat gerçekten göründüğü kadar zor değil.Şu ISA bağlantısına bir göz atalım.ISA bağlantısı varlıklara Primary Key atamak için kullanılır Primary Key'i olmayan tablolar PK'yi olan tabloya bu şekilde bağlanır.İlişkiler de köşeli oklar ile gösterilmiş.Yani N-N değil de I<= şeklinde.Size tavsiyem bir sürü örnek çözmeniz.Anlattığı konular hakkında bir sürü örnek çözün.Kendi kafanızdan örnekler uydurun.Böylece bunları 10 yıl sonra bile görseniz kolaylıkla hatırlarsınız.


İYİ ÇALIŞMALAR...

Spring Boot Uygulamasını Heroku üzerinde Deploy Etme

Bu yazımızda sizlere spring boot ile yazılmış basit bir Rest api'nin heroku üzerinde nasıl deploy edebileceğimizi göstereceğim. Önce ...