html etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
html etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

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

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>

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


JSP VE JAVABEANS GİRİŞ

JavaBeans özel tipli sınıflara ve metotlara sahiptir.JSP sayfalarının yazılımda uzun ve zahmetli işleri kolaylaştıran kodlar topluluğu diyebiliriz.JavaBean'ler tekrar tekrar kullanılabilirler.

JavaBeanler'ler JSP sayfamızdan mail göndermede ve almada,sayfalar arasında bilgi denetimleri ve onların kontrollerine oradan bilgilerin daha sağlıklı bir şekilde organize edilmesini sağlar.En temel metodları get ve set metotlarıdır.

Özellikleri

1-Javabeans için kullanılacak class public ve bu class'ın parametresiz bir contructor(yapılandırıcı)'ı olmalı..

2-Javabeans properties tipi private olmalı..

3-Javabeans'in properties'ine dışarıdan sadece getXxx() ve setXxx() metotlarıyla erişim sağlanabilecek..

4-Javabeans'imiz serializable (dosyaya veya başka bir stream yazılıp okunabilmesi)

JSP SAYFALARINDA 3 TEMEL JAVABEANS TAG'I BULUNUR

1-<jsp:useBean>
2-<jsp:setProperty>
3-<jsp:getProperty>

<jsp:useBean id="bean_adi" class="bean_sinifi" scope="page|request|session|application"/>
<jsp:setProperty name="bean_adi" property="ozellik" value="deger" />
<jsp:getProperty name="bean_adi" property="ozellik" />

page:bean örnek nesnesiyle JSP sayfalarımız yüklenirken bilgi giriş çıkışlarının denetlenmesi.

request:bean örnek nesnesiyle istemncinin isteklerini cevaplar

session:bean örnej nesnesiyle oturum nesnesi yöneltir.

Bir sonraki yazımızda JavaBeans'in nasıl kullanılacağına değineceğiz...

JSP İLE FORM VERİLERİNİ ALMA

<%--
    Document   : index
    Created on : 19.Şub.2018, 20:48:10
    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="goster.jsp">
        <table border="2" id="ornek">
            <tr >
                <td> Isim : </td> <td><input type="text" name="ad"></td>
            </tr>
            <tr>
                <td> Soyisim : </td> <td><input type="text" name="soy"</td>
            </tr>
            <tr>
                <td> Sifre : </td> <td><input type="password" name="sifre"></td>
            </tr>
            <tr>
                <td><input type="submit" name="gonder" value="DeğerleriGönder"></td>
                <td><input type="reset" value="Formu temizle" name="sil"></td>
            </tr>
            </table>
    </form>
</body>
</html>

<%-- 
    Document   : goster
    Created on : 19.Şub.2018, 21:00:26
    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>
    <table border="2">
        <tr><td><%= request.getParameter("ad") %></td></tr>
        <tr><td><%= request.getParameter("soy") %></td></tr>
        <tr><td><%= request.getParameter("sifre") %></td></tr>
    </table>
</body>
</html>

IMPLICIT OBJECT-SESSION

JSP sayfalarının hepsinde herbir istemci için global nesneler gezdirmek için session nesnesinden yararlanıyoruz.Web sitemizde gezen kullanıcının birden fazla sayfada güvenle,emniyetle gezinebilmesi için çok kullanışlıdır.Ziyaretçilerin her birine ayrı ayrı session id'si verilmektedir.Şimdi kodlarımıza bakalım.

<%@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="sessionOlustur.jsp">
        KULLANICI ADI :
        <input type="text" name="kullaniciadi" size=25>
        <p><input type="submit" value="Kullanici adini goruntule">
    </form>
</body>
</html>



<%@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>
     <% String kullaniciAdi=request.getParameter("kullaniciadi");
        session.setAttribute("oturumdakiKullanici",kullaniciAdi);
     %>
     Session hazır !
     <a href="sessionGoster.jsp">Diğer JSP sayfasında görmek için tıklayın...</a>
</body>
</html>




<%@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>
    Hosgeldiniz Sayın : <% session.getAttribute("oturumdakiKullanici"); %>
</body>
</html>






IMPLICIT OBJECT-RESPONSE

          Response nesnesi kullanıcı tarafına bilgi göndermek için bu bilgilerin hazır bulundurulmasında kullanılır.Cookies(Çerezler) gönderilmesinde respornse kullanılır.

Örneğimize göz atalım.

<%@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>
      <% Cookie cerezNesnesi=new Cookie("Test","Gkhan");
         cerezNesnesi.setMaxAge(365*24*60*60);
         //ÇEREZİMİZİN ÖMRÜ
         response.addCookie(cerezNesnesi);
         response.sendRedirect("cerez.jsp");
         //cerezimizi cerez.jsp ye gönderdik
      %>
</body>
</html>
--------------------------------------------Cookie'mizi cerez.jsp yollayıp oradan görüntüledik
<%@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>
    <%
        Cookie [] cerezim=request.getCookies();
        //gelen cerez alındı
        for(int i=0;i<cerezim.length;i++){
            if(cerezim[i].getName().equalsIgnoreCase("Test"))
            {
                out.println("Gelen cookie degerimiz:"+cerezim[i].getValue());
            }
        }
    %>  
</body>
</html>




IMPLICIT OBJECT-REQUEST

Bu yazımızda implicit nesnelerimize biraz daha yakından bakacağız..

REQUEST

     Request nesnesinin kullanımı çok yaygındır.HTTP istekleri,kullanıcıdan parametreler veya form aracılığı ile alır.Request mevcut istekleri kapsülleyip sunucuya gönderir.Buna karşılık sunucudan response(cevap mesajı) gelir.Bilgi aktarımı server'dan client'e gönderilmiş olur.Bu işlem bittiğinde request nesneleri yok edilir.Şimdi kodlarımıza göz atalım..


<%--
    Document   : request
    Created on : 16.Şub.2018, 16:58:28
    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>
    Request method : <%= request.getMethod() %>
    Request URI :    <%= request.getRequestURI() %><hr/>
    Request PROTOKOL :    <%= request.getProtocol() %><hr/>
    Path Info(Yol Bilgisi) :    <%= request.getPathInfo() %><hr/>
    Query String(Sorgu Katarı) :   <%= request.getQueryString() %><hr/>
    Content Length(İçerik Uzunluğu) :   <%= request.getContentLength() %><hr/>
    Content Type :    <%= request.getContentType() %><hr/>
    Server Name :   <%= request.getServerName() %><hr/>
    Server port :    <%= request.getServerPort() %><hr/>
    Remote (uzak) user :   <%= request.getRemoteUser() %><hr/>
    Remote (uzak) Address :   <%= request.getRemoteAddr() %><hr/>
    Remote Host :   <%= request.getRemoteHost() %><hr/>
    Authorization scheme (Yetkilendirme Tasarısı) :   <%= request.getAuthType() %><hr/>
 
</body>
</html>

IMPLICIT OBJECTS

1-out (javax.servlet.jsp.JspWriter) nesnesidir.JSP'de ekrana yazı basmak için kullanılır..

2-request (javax.servlet.http.HttpServletRequest) nesnesidir.İstemcinin istekleri yapılır.

3-response (javax.servlet.http.HttpServlet.Response) nesnesidir.İstemcinin isteklerine yanıt verir.

4-session (javax.servlet.HttpSession) nesnesidir.Nesneleri global olarak gezidirmek için kullanılır.

5-application (javax.servlet.ServletContext) Servletteki uygulamaların metotları arayüzler ile yapılır.

6-pageContext (javax.servlet.jsp.PageContext) nesnesidir.JSP sayfaları hakkında bilgi verir.

7-config (javax.servlet.ServletConfig) nesnesidir.Servletin ayar işlemleri buradadır.

8-exception (java.lang.Throwable) nesnesidir.JSP'de oluşan hatalar için kullanılır.

JSP İLE FONKSİYON YAZIP ÇAĞIRMAK



















<%--

    Document   : Ornek
    Created on : 15.Şub.2018, 23:00:03
    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>
    <%!
        String ex="";
        public String TerstenYaz(){
            for(int i=6;i>0;i--)
                ex=ex+"<h" +i+ ">" +"CODINGISLIFE"+ "</h" +i+ ">";
        return ex;
    }
%>
<%= TerstenYaz() %>
</body>
</html>

SCRIPTLET TAG & ACTION TAG

4-SCRIPTLET TAG(Bilinen kodlama)

    Bu tag'lar <% %> arasına yazılır.Bir değişken tanımlayıp onu jsp sayfamızda yazdırmak isteseydik.
<%
      String sehir="Hatay";
      out.println("sehir");
      int yas=21;
      out.println(yas);
%>

5-ACTION TAG
 
    Bu tag'ımızı 3 ayrı şekilde kullanabiliriz..

1-Sunucu tarafında Javabeans kullanımına olanak sağlar
2-JSP sayfaları arasındaki bilgi aktarımını denetler
3-Appletler için hangi web tarayıcı olursa olsun fark etmez.Sağlıklı çalışır ve destekler..

Sonraki yazımızda bu tagları uygulamalı bir şekilde kodlar ile göreceğiz

DIRECTIVE TAG (2)Include Directive & (3)Tag Library Directive

2-INCLUDE DIRECTIVE

   JSP sayfalarında dışarıdan başka dosya,kod parçası veya herhangi bir JSP sayfasının bir başka JSP sayfasında kullanılmasını istediğimizde kullanırız.

 <%@ include file="footer.html" %>

 <%@ include file="takim/Galatasaray.jsp"%>

3-TAG LIBRARY DIRECTIVE

   Eğer ki koleksiyondan bir Taglib kullabacak isek oba istediğimiz bir ön isimle veya lakapla çağırmalarda bulunabiliriz.Ön isim veya lakap kullanım tekniği JSP sayfalarında Taglib kodların kullanımını kolaylaştırır..


  <%@ taglib uri="tag library URI" prefix="tagimiz" %>
  <%@ taglib uri="http://java.sun.com/jsp/jstl/core" %>
  <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" %>

Bir sonraki yazımızda Tag'larımıza devam edeceğiz.Bir sonraki tag çeşidimiz 4-Scriptlet tag---

DIRECTIVE TAG (1)Page Directive

3-DIRECTIVE TAG

    Bu taglar sayfaya özel bilgiler ekler.3'ayrı directive tag'ı vardır.Bunlar çok önemli taglardır.Bu örnekleri çözdükçe kendi kendinize küçük küçük uygulamalar yazmaya çalışın.Ben toplama kısmını yazarsam siz çıkarma kısmını yazın.Unutmayın bir dili geliştirmek için o dilde sürekli kod yazmanız gerekiyor.Biraz sabır ile daha zor daha eğlenceli konulara geleceğiz..

3.1)Page Directive

       Çalışan JSP  sayfasında işlenecek bilgileri tanımlar.

3.2)Include Directive

       Dışarıdan harici dosya,web sayfalarını ve kod parçalarını JSP sayfalarımıza dahil etmede kullanılır.Aynı yapı PHP'de de bulunur.2 veya daha fazla PHP sayfasını birleştirmeye yarar.Bu kod kalabalığını önler.Şöyle ki bir web sitesi tasarlıyorsunuz ve bu web sitesinin header footer gibi parçaları var.Ve her pakette ayrı ayrı bu kodları yazdığınızı düşünün.Header'da yaptığınız bir değişikliği tüm sayfalarda yapmak zorundasınızdır.Fakat header.jsp'yi include ederseniz,yaptığınız değişikliği tek seferde tüm jsp sayfalarına aktarabilirsiniz...

3.3)Tag Library Directive

      Özel tag kütüphaneleri kullanırken yazılır..

Şimdi de taglarımız tek tek ayrıntılı inceleyelim..

-Page Directive-

  1)Language
   
       Sayfamızda kullandığımı dili yazmak için kullanılır..
  <%@ page language="java"%>
 
   2)Extends

        Java SE'dan da bildiğiniz gibi kalıtım özelliğini kullanmak için kullanırız.

    <%@page extends="guzelkokar496.blogspot.com"; %>
 
   3)Import

          Java'da yararlanacağımız sınıf ve paketleri import page ile yaparız..

     <%@page import="java.swing.*,java.awt.*,java.awt.event.*" %> gibi kütüphaneleri import ettik

   4)Session

      JSP sayfaları arasında eğer oturum nesnelerinden yararlanacaksak page session'u yardımımıza
koşacaktır.

   Session çok önemlidir.Büyük projelerin vazgeçilmezidir.

Session iç nesnesi kullanılarak scriptlerler aracılığı ile erişirler.Session kullanıcılar tarafından tekrar tekrar kullanılan Java Beans bazı nesneleri saklamak için gayet elverişlidir..

     <%
           String nesne=request.getParameter("KullaniciAdi");
           session.setAttribute("MerhabaNesne",ortamNesnesi);
      %>
    
    5)Buffer

         Buffer (tampon) kontolünü sağlamak amacıyla kullanılıyor..Varsayılan deger 8kb.
     
      <%@  page buffer="16kb" %>

     6)AutoFlush
    
           JSP sayfalarındaki bufferlar dolduklarında otomatik boşaltılmaları için kullanılır.

      <%@page autoFlush="true" %>

     7)isThreadSafe

             JSP'de çok kanallı çalışan bir uygulama geliştirdiğimizde Servlet tarafında bu çoklu istekleri
tutup eş zamanlı yönetmek için bu tagımızı kullanırız.

      <%@page isThreadSafe="true" %>

     8)Info

          Geliştirilen JSP sayfasının hakkında programcı,versiyon,sahiplik hakkı gibi bilgiler yazılır..

       <%@page info="guzelkokar496.blogspot.com,copyright 2018" %>

      9)ErrorPage

          Herhangi bir hata anından sayfasının bulunduğu URL adresine yönlendirme yapar.Bu tag gerçekten kullanışlıdır.

       <%@page errorPage ="/hata/hataBuyuk.jsp"%>

      10)IsErrorPage

            Bu tag hata sayfasının kendisinde kullanılarak hata meydana geldiğinde gereken bilgileri web tarayıcısında gösterecektir.

       <%@ page isErrorPage="true" %>

     11)ContentType

            Bu tag'ta ülkelerin karakter kodlarını içeriyor..
     Bunları ezberlemeye gerek yoktur.Sadece ne yapabileceklerinizi öğrenseniz yeter..

       <%@ page contenType="text/html" pageEncoding="UTF-8" %>

Bir sonraki yazımızda 2.Directivi'miz Include 'ye bakacağız...Görüşmek üzere..
   








JSP-EXPRESSION TAG

2-EXPRESSION TAG

     Bu tagımız JSP'de java kodları yazmamızı sağlıyor.<% %> veya <%= %> şeklinde yazılıyor..
"=" olanında yazarsak sonuna noktalı virgül koymamıza gerek kalmaz..Düz şekilde yazarsak sonuna noktalı virgül eklememiz gerekiyor.Kodumuza göz atalım.

<%--
    Document   : JspTags
    Created on : 15.Şub.2018, 14:04:49
    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>
    <%--DECLARATION TAG--%>
        <%!
            public double sayi=10;
            public String Takim="Galatasaray";
        %>

    <%-- EXPRESSION TAG --%>
    <% out.println("Merhaba"); %>
    <%= out.println("Merhaba..") %>
    <%= new java.util.Date() %>

</body>
</html>



JSP-DECLARATION TAG

1-DECLARATION TAG

        Declaration tag'lar değişken ve metotları tanımlarken kullanılır.."<%! %>" arasına yazılır.
Bildiğiniz java kodları işte.Yani int sayi; String yazi; Örneğimize bakalım..

<%--
    Document   : JspTags
    Created on : 15.Şub.2018, 14:04:49
    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>
    <%--Declaration Tag--%>
        <%!
            public double sayi=10;
            public int a=4;
            public String Takim="Galatasaray";
        %>
</body>
</html>

Java Server Page ' GİRİŞ

    JSP dinamik web sayfaları hazırlayabileceğimiz,java tabanlı bir web teknolojisidir..
JSP yazmak için ECLİPSE veya NETBEANS'i kurmanız gerekiyor.Daha sonra local bir server'i daha kurmanız gerekiyor.NETBEANS'te bunları plugins edebiliyorsunuz.Ben başlangıç olarak Apachenin TOMCAT'ini kurdum.GlassFish Tomcat gibi bir sürü sunucu var.Herhangi birini kurup işe atılabilirsiniz.Kariyerinizi java üzerine kurmayı düşünüyorsanız.Paylaşacam örnekleri anlayıp kendinizde değişik kaynaklardan çalışmaya başlayın..Java SE'den başlayıp Java EE' ile devam edin..Java çok geniştir.Bende bu yazım ile Java EE'ye geçiş yapmış bulundum.Fakat
Java SE'örnekleri paylaşmaya devam edeceğim.Swing olsun OOP olsun.Zamanım yettiğince paylaşmaya çalışacağım.İyi çalışmalar.

İLK JSP ÖRNEĞİMİZ
 
 İlk örneğimizi kodlarken dikkat edeceğimiz noktalar var.JSP taglarla yazılır.HTML kodları ile birlikte çalışır.Ve bunu yaparken bir sunucuya ihtiyaç duyar.Tıpkı PHP,ASP.NET gibi..Java'da yazdığınız çoğu kodu çalıştırmanız mümkün.Evet şimdi örneğimize bakalım..

<%--
    Document   : newjsp
    Created on : 15.Şub.2018, 13:39:20
    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>
    <h1>Hello World!</h1>
    <%@page language="java" %>
    <% out.println("Bu benim"); %>
    <% out.println("ilk JSP sayfam"); %>
</body>
</html>

Bu örneği NETBEANS IDE 8.2 de yazdım.Örnekte JSP taglarının <% ile başlayıp %> ile bittiğini görüyorsunuz..Onun dışında page tag'ı kullanılmış ona daha sonra ayrıntılı bakacağız..
 

PHP İLE CAPTCHA YAPIMI

<!--captcha.php -->
<?php
session_start();
$letters=array("a","b","c");
$randomselect=rand(0,2);
$random=rand(10000000,90000000);
$text=$letters[$randomselect].$random;
$_SESSION["captcha"]=$text;
$pic=imagecreatetruecolor(100,30);
$backgroucolor=imagecolorallocate($pic,55,55,55);
$fontcolor=imagecolorallocate($pic,35,255,155);
imagefill($pic,0,0,$backgroucolor);
imagestring($pic,5,5,5,$text,$fontcolor);
header("Cache-Control:no-cache");
header("Content-type:image/png");
imagepng($pic);
imagedestroy($pic);

?>
---------------------------------------------------------------------------
<!-- index.php -->
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="dogrula.php" method="POST">
<table border="3">
<tr>
<td>
Please enter in the picture
</td>
<td>
<input type="text" name="captcha">
</td>
</tr>
<tr>
<td colpan="2">
<img src="captcha.php">
</td>
<td>
<input type="submit" name="submit" value="GIRIS">
</td>
</tr>
</table>
</body>
</html>
----------------------------------------------------------------------------------------------------
<!--dogrula.php-->
<?php 
session_start();
if(isset($_REQUEST["captcha"] && $_REQUEST["captcha"]!=""
&& $_SESSION["captcha"]=$_REQUEST["captcha"]){
echo "TRUE";
}
else 
echo "FALSE";
?>

MERKEZ BANKASINDAN ANLIK ALINAN DOLAR KURU İLE TL DÖNÜŞÜMÜ YAPAN PHP PROGRAMI

<!--cek.php -->

<!--Burada merkez bankasından sadece doları çekmek için bir dizi oluşturup o diziye foreach ile ayırdığımız dizinin ilk satırını atıp kullandık...-->

<?php

$linkdolar="http://www.tcmb.gov.tr/kurlar/today.xml";



$data = new SimpleXMLElement($linkdolar,0,true);

$dizi=array();

$dolaralis=array();

foreach ($data as $value)

 {

  array_push($dizi,$value->Isim);

  array_push($dolaralis,$value->ForexSelling);

 }

?>

--------------------------------------------------------------------------------------------------------

<!-- MerkezBankasi.php -->

<?php

function getir($key){

 if(isset($_POST[$key]) && strlen($_POST[$key])>0)



  return $_POST[$key];

   return false;

}

$dolartl = "";

$miktar = "";

$sonuc = "";

  if(count($_POST)==4)

  {

   $dolartl = getir("dolartl");

 

   $miktar = getir("miktar");

   $secim1 = getir("secim1");

   $secim2 = getir("secim2");

 

   if (!($dolartl  && $miktar && $secim1 && $secim2)) {

   $sonuc="veri girisi hatali";

   }

  else

    {

          if($secim1!=$secim2)

          {

              include "kur.php";

              $kur = new kur($dolartl);

              $tip=$secim1.$secim2;

              $deger=$kur->donustur($tip,$miktar);

              $sonuc=$miktar." ".$secim1."<br>";

              $sonuc.=$deger." ".$secim2;

          }

          else

              $sonuc="secimler ayni!";

    }

  }

?>

<html>

 <head>

  <meta charset="UTF-8">

 </head>

 <body>

  <form method="POST">

   <table border="3">

   <tr>

   <?php include "Cek.php"; ?>

    <td>Dolar</td>

    <td><input type="text" name="dolartl" value="<?php echo $dolaralis[0]; ?>"> </td>

   </tr>

   <tr><td colspan="2"><br></td></tr>

   <tr>

    <td>Miktar:</td>

    <td><input type="text" name="miktar" value="<?php echo $miktar; ?>"></td>

   </tr>

   <tr>

            <td>

                Seçim-1:

            </td>

            <td>

                <input type="radio" name="secim1" value="TL" checked>TL

                <input type="radio" name="secim1" value="$">USD

            </td>

        </tr>

        <tr>

            <td>

                Seçim-2:

            </td>

            <td>

                <input type="radio" name="secim2" value="TL" checked>TL

                <input type="radio" name="secim2" value="$">USD

            </td>

        </tr>

  <?php

        if (strlen($sonuc) > 0)

            echo "<tr><td colspan='2' style='text-align: center;  color: #ff6144;'>" . $sonuc . "</td></tr>";

        ?>

  <tr><td colspan="2" style=text-align:center><input type="submit" value="Cevir"></td></tr>

  </table>

  </form>

 </body>

</html>

---------------------------------------------------------------------------------------

<!-- kur.php -->



<?php

class kur

{

    public $dolartl;

    public function __construct($dolartl)

    {

        $this->dolartl=$dolartl;



    }

    public function donustur($tip,$miktar)

    {

        switch ($tip)

        {

            case "TL$": return $this->tl2dolar($miktar);

            case "\$TL": return $this->dolar2tl($miktar);

            default: return "Seçimler Uygun Değil!";

        }

    }

    public function tl2dolar($miktar)

    {

        $sonuc=$miktar/$this->dolartl;

        return round($sonuc,2);

    }



    public function dolar2tl($miktar)

    {

        $sonuc=$miktar*$this->dolartl;

        return round($sonuc,2);

    }

}

?>

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