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>

BİLGİSAYARIN ÇALIŞMA DÜZENİ

Bilgisayarın çalışma düzenini aşağıdaki örnek üzerinden inceleyelim.


Örneğimizde iki sayının toplanıp bir bellek gözüne yazılması istenmiş.Yukarı da adım adım çözülen örneğimizde dikkat edilmesi gereken yerler var.Bunlar da ilki ve en önemlisi Akümülatörün Data Register'ina atılmasıdır.Sonraki dikkat edilecek konu işlem yapmak istediğimiz AR'ını işlemi yapacağımız gözü ayarlamak ve daha sonra denetçinin vereceği komular ile veri yolu veya adres yolundan işlemi sonlandırmak...

BİLGİSAYARIN TEMEL BİRİMLERİ

  Bilgisayar 3 temel birimden oluşur.Ve bu birimler bir birleri içerisinde sürekli bir iletişim halindedir.


1)Merkezi İşlem Birimi

       MİB,bilgisayardan beklenen hesap yapma ve karar verme işlemlerinin gerçeklendiği birimdir.Bu birim aynı zamanda,tüm bilgisayarların çalışmasını da yönetir.Bu nedenle çoğu kez MİB'e bilgisayarın beyni olarak bakılır.

2-Bellek

      Bellek,veri ve programların saklanması amacıyla kullanlmaktadır.Bazı bilgisayarlarda,veri ve program aynı bellek içinde saklanırken,bazılarında veriler için ayrı programlar için ayrı bellek tasarlanır.Veri ve programın aynı bellekte olmasını Von Neumann yapısındaki bilgisayarlar sağlar.

3-Giriş-Çıkış 

      Giriş-çıkış arabirimi bilgisayarın,çevre birimlerle bağlantı kurmasını sağlar.Bilgisayarın çevre birimler arasında veri iletişimi için önemli rol oynar.

Bilgisayarların bu bölümleri arasındaki bağlantıyı sağlamak için tasarlanmış çok sayıda yol bulunur.Bunlar Veri Yolu ,Adres Yolu ve Denetim Yolu'dur.

Şimdi biraz daha ayrıntılı bakalım..
.
      Merkezi İşlem Birimi

               5 alt birimi vardır.Bu alt birimler;

 1-Bellek Adres Register'ı
2-Bellek Veri Registeri'i
3-Akümülatör
4-Aritmelik Lojik Birim (ALU)


     Bellek Adres Register'i MİB'ten ve  G/Ç tan gelen adresin nereye gideceğini belirler.Bellekten okuma veya yazma yapacağımızda AR'yi kullanmamız gerekir.AR adres yoluna bağlıdır.

     Bellek Veri Register'i MİB'den belleğe veya giriş-çıkış arabirimine giden veya buralardan MİB'e gelen verilen alınıp verildiği bir iskele olarak görev yapar.DR üzerinden MİB'e gelen veriler ACC (Akümülatöre) alınır.ALU tarafında da yürütülür.

  Denetçi,tüm bilgisayarların yönetimi ile ilgili bilgileri toplamak ve üretmekle görevlidir.

     Bellek

         Bellek birbirinin aynı ve çok sayıda bellek birimlerinin üst üste yığılması ile oluşmaktadır.
Bellek birimlerine bellek gözü her bellek gözüne ise göze adı verilen birimler bulunur.Veri yolundaki hat sayısı bir bellek gözündeki göze sayısı kadardır.Bu gözelere erişmek için ise adres yolu kullanır.Giriş-çıkış elemanlarıda birer bellek gözü gibi düşünülebilir.Aralarındaki fark,bu gözlerin birer ucunun bilgisayarın dış dünyasına açılmasıdır.

8 bitlik mikroişlemcilerin çoğunda veri yolu 8,adres yolu 16 hattan oluşur.Denetim yolundaki hatların sayısı MİB'in yapısına göre değişmektedir.16 bitlik mikroişlemcilerde veri yolu 8 ya da 16 bit olabilir.







     















MİKROİŞLEMCİLERE GİRİŞ

   Günümüzde mikroişlemciler iki alanda kullanılmaktadır.Birinci kullanım alanı,genel amaçlı bilgisayar üretimi ikinci alanı ise atanmış bilgisayar uygulamalarıdır.Günümüzde,yaygın olarak kullanılan bireysel bilgisayarların temel taşı mikroişlemcilerdir.Bireysel bilgisayarlara göre daha yetenekli olan iş istasyonları sunucular ve orta boy bilgisayarların teme öğereleri de  mikroişlemcilerdir.

Bilgisayar Yapısı

     Bellek Yetenegi
     
          Veri ve programlar,bellekte saklanabilmelidir.Saklanan veri ve programlar istediğinde geri alınabilmeli veya yeniden saklanabilmelidir.

     Hesaplama Yeteneği

          Bilgisayar kendisine verilen veriler üzerinde,yine kendisine verilen programa uygun olarak aritmetik ve mantıksal işlemler yapabilmelidir.

      Karar Verme Yeteneği

          İşlemler sonunda veya kendisine verilen verilere bakarak programın akışı ve/veya verilen değerlendirilmesi konusunda karar verebilmelidir.Yüksek seviyeli dillerdeki if else yapısı bu duruma örnek olarak verilebilir.

      Giriş-Çıkış Yeteneği

           Bilgisayara dışarıdan veri ve program verilebilmeli ve sonuçlar bilgisayardan dışarı alınabilmelidir.Kısaca,bilgisayar ile çevresi arasında veri iletişimi olmalıdır.

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

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