Mehmet Ethem SULAN :: JSF JSP JavaScript Ajax jQuery CSS :: How to Use Session in JSP(JSP ile Session(Oturum) Oluşturma ve Kontrol Örneği)

res

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

JSP Page

        <form action="GirisKontrol.jsp" method="POST">
            <table border="1">
                    
                        Kullanici Adi:
                        <input type="text" name="ad">
                    
                    
                        Parola:
                        <input type="password" name="parola">
                    
                    
                        <input type="submit" value="Giris Yap">
                    
            

        
    


Orj kod:http://www.ethemsulan.pastebin.com/Mi82ArNY

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


<%@page import="VeriTabani.Giris" %>

    
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        JSP Page
    
    
        <%!
        String ad,parola;
        Giris girKontNes;
       %>
       <%
       girKontNes=new Giris();
//index.jsp den gelend egerleri alir
       ad=request.getParameter("ad");
       parola=request.getParameter("parola");
       %>
       <%
//Eger ad ve parola sistemde kayitli ise ona ait bir session olusturur.
//Oturuma isim uye ve degeri de 1 dir.setAttribute(String name, Object value)
//Uyeye ait oturum ve deger attiktan sonra AnaSayfa.jsp ye gonderir.
       if(girKontNes.uyeKayKontrol(ad, parola))
       {
            HttpSession oturum=request.getSession(true);
            oturum.setAttribute("uye", 1);
            response.sendRedirect("AnaSayfa.jsp");
       }else{
//Eger uye kayitli degilse sisteme uyeliginiz yok seklinde yazi gelir.Herhangi
//bir yere yonlendirmedim.Bu ornekte amac session oluturma ve kontrol etmektir.
            out.println("Sisteme uyeliginiz yok.");
       }
       %>
    

Orj kod:http://www.ethemsulan.pastebin.com/7U8yi4jG

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


    
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        JSP Page
    
    
        <%
//GezinmeSayfasi.jsp deki gibi bu d agelen uyeye ait session yoksa yani
//null ise exit(0); ile sistemden cikiyor.GezinmeSayfasi.jsp eger session yoksa
//yonlendiriyordu index.jsp sayfasina
        if(session.getAttribute("uye")==null){
            System.exit(0);
        }
//Eger uyeye ait session varsa ve degeri 1 ise sayfalarda gezinebilir.
//Tabi bu sekilde tum sayfalarin basinda kontorl edilmeli ki uye olmayan ya da sisteme giris yapmayan
//sisteme giremezsin
        else if((Integer)session.getAttribute("uye")==1)
        {
            out.println("Hos geldiniz
");
            out.println("Gezinmek Icin Tiklayin");
        }
        %>
    

Orj kod:http://www.ethemsulan.pastebin.com/iqiGDKsg

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


    
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        JSP Page
    
    <script language="JavaScript">
        <!--
        function mesajVer()
        {
            alert("Bu sadece sessionun nasil kontrol edildigine bir ornektir");
        }
        -->
    
    
        <%
//GirisKontrol.jsp sayfasinda oturum.setAttribute("uye", 1);
//ozellige uye atamistik.Eger kullanici adres cubuguna
//http://localhost:8084/SessionOlusturma/GezinmeSayfasi.jsp yazarsa direkt
//index.jsp sayfasina yonlendirir.Cunku uyeye ait oturum yok.
        if(session.getAttribute("uye")==null)
        {
//Giris sayfasina yonlendirecez.Eger kullaniciya ait session yoksa.
            response.sendRedirect("index.jsp");
        }
//Eger gelen uyemize ait session varsa degeri 1 ile karsilastiriyor.Cunku
//setAttribute("uye", 1) ile ben 1 atadim.1 aslinda Object yani
//javanin root sinifi tipinde bir degerdir.
        else if((Integer)session.getAttribute("uye")==1)
        {
//JavaScript ait mesajVer() metodunu jsp icinde cagirdim.
//Herhangi bir yerde  seklinde tanimlayip kullanabiliriz.
        out.println("mesajVer();");
        }
        %>
    

Orj kod:http://www.ethemsulan.pastebin.com/sEBMgqsD

 

//www.ethemsulan.com
package VeriTabani;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
import java.util.logging.Level;
import java.util.logging.Logger;
//Bu sekilde kullanima dikkat edin.Veritabaniyla ilgili islemler
//jsp sayfasi icinde de olur.Ama bu sekilde yani farkli bir pakette almak
//daha saglikli ve yonetilebilirdir.
public class Giris {
    Statement uyg;
    ResultSet sonuc;
    JdbcYukle yukNes;
    public Giris()
    {
    yukNes=new JdbcYukle();
    }
//JdbcYukle.java icindeki metodu cagirip gelen kullanici adi ve parola
//veritabanimizda kayitli ise true, degilse false donderir.
    public boolean uyeKayKontrol(String kulAdi,String parola) throws SQLException, ClassNotFoundException
    {
    uyg=yukNes.baglanSag();
    uyg.execute("select kul_adi,parola from uye " +
      "where kul_adi='"+kulAdi+"' and parola='"+parola+"'");
//execute() islemindeki sonuclari donderiri.
    sonuc=uyg.getResultSet();
        try {
            if (sonuc.next()) {
                return true;
            }
        } catch (SQLException ex) {
            Logger.getLogger(Giris.class.getName()).log(Level.SEVERE, null, ex);
        }
    return false;
    }
}

Orj kod:http://www.ethemsulan.pastebin.com/558TpByn

//www.ethemsulan.com
package VeriTabani;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcYukle {
    Connection baglanti;
    Statement ifade;
//Projemizde her yerde Class.forname(..) tanimlamamk icin bir metodta tanimlayip
//istedigimiz yerde bu metodu cagirip kullanmak daha iyidir.
    public Statement baglanSag() throws SQLException, ClassNotFoundException
    {
    Class.forName("com.mysql.jdbc.Driver");
baglanti=DriverManager.getConnection("jdbc:mysql://localhost/odevler", "root", "123");
    ifade=baglanti.createStatement();
    return ifade;
    }
}

orj kod:http://www.ethemsulan.pastebin.com/SuWgz1sa

Servlette ve jsp bir birlerinin yerine kullanılabilirler.Servlet ile sesion örneği:http://www.ethemsulan.com/2010/02/java-servlet-ile-sessionoturum.html

Comments

There are 6 comments for this post.

  1. onur on Mart 12, 2011 5:16 pm

    öncelikle bitirme projem jsp ile ilgili olduğu için yazılarını özellikle takip ediyorum.

    bir sorum olacaktı..

    ilk olarak login olunabilcek bir sayfa vermişsiniz… fakat ya o kişi daha önceden login olmuşsa ve tekrar index.jsp ye gittiğinde session olup olmadığını kontrol etmemiz gerekir diye düşünüyorum..

    bir başka deyişle.. kullanıcı index.jsp de karşılanır

    email ve password u ile login olur ardından tekrar index.jsp ye yönlendirilir fakat bu kez 2 texbox 1 button yerine hoşgeldiniz “kullanıcıAdı” şeklinde bir karşılama yapılır ve hemen yanına bir çıkış butonu konur..

    kullanıcı çıkışa tıkladığında ise herhangi bir şekilde
    session.invalidate();
    çalıştırılıp oturum sona erdilir…

    yapmaya çalıştığım bu fakat tekrar index.jsp sayfasında session mevcut mu değil mi kontrolünü yapamıyorum.

    bilginiz varmı acaba

  2. ethemsulan on Mart 13, 2011 5:24 pm

    oturum.setAttribute(“uye”, 1); Bu session oluşturuyor ve değeri 1 dir. index.jsp deki sayfada session.getAttribute(“uye”)==null ise demek ki o kullanıcıya ait yani “uye” attributune ait hiç bir değer yok. Yani session yok. Session varsa o zaman (Integer)session.getAttribute(“uye”)==1 şeklinde kontrol ediyoruz. Ben index.jsp ye giderken kontrol etmedim ama kontrol etmek için session.jsp gibi bir sayfa oluşturum session kontrolunu yap ve bütün sayfalara include etmen yeterli. Yani yukarıda yazdığım 2 kontrolu session.jsp isminde bir sayfaya ekle ve include et.

  3. taha on Nisan 25, 2012 6:53 pm

    Makale için teşekkür ederim açıklayıcı bir yazı olmuş. Yanlız benim takıldıgım bir nokta var GezinmeSayfasi.jsp sayfasını refresh ettiğimiz zaman session değerini kaybediyor ve null değeri dönüyor ama php deki session larda sayfayı ne kadar refresh etsekde değerini kaybetmiyor taki destroy edene kadar acaba bu yapı yı jsp de nasıl kurabilirim yada bir yerlerde yanlışlıkmı yapıyorum bilemedim şimdiden teşekkür ederim

  4. Muhammed on Ağustos 6, 2012 11:57 am

    Selamun aleyküö.Şu sıralar jsp ile uğraşıyorum.Şu an veritabanı kısmındayım.Şöyle bir şey yapmak istiyorum.Kullanıcı adı ve parola girilecek eğer bu kullanıcı adı ve parola veritabanında kayıtlı ise giriş yapılacak aksi halde kayıtlı kullanıcı bulunamadı diye bir uyarı mesajı verecek.Bunun için internette araştırma yaptım sizin sitenizde bunu açıklağınızı gördüm ancak benim aldığım hatanın nereden kaynaklandığını bulamadım.Netbeans ve mysql kullanıyorum.Kodun belirli kısımlarını aşağıda yazıyor.Yardımınızı bekliyorum.Şimdiden ALLAH razı olsun.
    —————-Veritabanı islemleri.java———————-
    public User uye_kontrol(String username,String password) throws SQLException{

    String sorgu = “Select * from kullanıcılar username=? and password=?”;
    PreparedStatement pstmt = (PreparedStatement) con.prepareStatement(sorgu);
    pstmt.setString(1, username);
    pstmt.setString(2, password);
    ResultSet rs = pstmt.executeQuery();
    User user = null;
    if(rs.next()){
    user = new User();
    user.setUsername(rs.getString(“username”));
    user.setPassword(rs.getString(“password”));
    }
    pstmt.close();
    rs.close();
    return user;

    }
    —————-index.jsp—————————–

    Kayıtlı kullanıcı bulunamadı

    ————————————————————–
    Not:”vi.uye_kontrol(username,password)” kısmında hata veriyor.

  5. Muhammed on Ağustos 6, 2012 12:40 pm

    Selamun aleyküm.Yapılan uygulama çok güzel olmuş.Ancak sayfaların isimleri de yazılabilirse anlayıp uygulamamız daha kolay olur.

  6. bahar on Aralık 24, 2013 6:25 pm

    öncelikle merhaba, güzel bi çalışma olmuş mümkünse sayfaların isimlerini de yazar mısınız?

Write a Comment

Let me know what you think?