Mehmet Ethem SULAN :: Servlet ve JSP(Java Server Pages) :: Java Servlet ile Session(oturum) Oluşturma Örneği(Create a servlet session)
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
JSP Page 
<form action="http://localhost:8084/OturumOlusturma/OturumServleti"
      method="POST">
<table border="1">Kullanıcı Adı:
<input type="text" name="ad">
Parola:<input type="password" name="parola">
<input type="submit" value="Sisteme Giris">

Orj Kod:http://www.ethemsulan.pastebin.com/f1fb6193f

package www.ethemsulan.com;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class OturumServleti extends HttpServlet {
//form post metoduyla gonderilmiş
protected void doPost(HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter cikti = response.getWriter();
String kulAd=request.getParameter("ad").trim();
String kulParola=request.getParameter("parola").trim();
if("".equals(kulAd)| "".equals(kulParola)){
//kul adi veya parola null geçilemez
response.sendRedirect("index.jsp");
}else if(!kulAd.equals("ethem") & !kulParola.equals("sulan")){
request.getRequestDispatcher("index.jsp").forward(request, response);
}else{
//getSession(true) true olması oturum yoksa olustur
HttpSession oturum=request.getSession(true);
oturum.putValue("kulIsmi", kulAd);
oturum.putValue("kulSifre", kulParola);
//Bu ide kullaniciya ozgun olusturulur ve sunucda tutulur.
//suncu bu ideye bakarak kullanici farkli sayfalarda gezindiginde
//ayni kullanici oldugu anlasilir.
cikti.println("Kullanici İd-->"+oturum.getId());
cikti.println("
Girilen oturum ismi-->
"+oturum.getAttribute("kulIsmi"));
cikti.println("
Gezinebilirsin Her sayfada
");
//Checkbox seçili olduğundan oturum oluşturulduğundan cookie gibi
//kullanıcı adı ve parola yı hatırlıyor.Cookiler çok kullanışlı değiller
cikti.println("
Ana Sayfaya Git
");
        }    }  }

Orj Kod:http://www.ethemsulan.pastebin.com/f445ea6e8

package www.ethemsulan.com;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class OturumServleti2 extends HttpServlet {
//doGet metoduyla alınmış.
protected void doGet(HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter cikti = response.getWriter();
//Oturum bilgileri sunucuda tutulur ve ve kullanıcıyla ilişkilendirmek için de
//kullanıcı bilgisayarında ozel bir oturum kokisi oluşturulur.
//Bu kullanıcı ozel oturum kokisi kullanıcıya ozgü rasgtgele bir
//ide dir.Kullanıcı farklı sayfalarda gezindiğinde bu ide ile aynı kullanıc
//olduğunu anlar uygulama
//getSession(true) olmadığı için yeni bir oturum oluşturulmaz.
HttpSession oturum2=request.getSession();
if(oturum2.isNew()==false){
cikti.println("Kul tc no yani id-->"+oturum2.getId());
cikti.println("
Kul İsmi-->
"+oturum2.getAttribute("kulIsmi"));
//dikkat edin diğer sınıftaki oturum ismi ve idesine erişebiliyoruz.
cikti.println("Cik");
        }  } }
Orj kod:http://www.ethemsulan.pastebin.com/f2539878f

Session nesnesi bir uygulamaya bağlanma ile ayrılma arasında geçen sürede kullanıcıya ait bilgilerin ve uygulamada farklı sayfalara erişlemesini sağlar.Session cookilerden farklı kullanıcıya ait bilgileri sunucuda tutar.Bu sunucuda tutulan kullanıcıya ait bilgileri kullanıcıyala ilişkilendirmek için de kullanıcı bilgisayarında özel bir session cookiesi oluşturur.Bu session cookiesi rastgele üretilen bir idedir, tc no gibi.Bu kimnlik numarasından uygulama kullanıcıyı tanır.Bu id ya da tc no yeni oturum oluşturulduğunda yeniden üretilir.Yanı ben tarayıcımı kapatmadan çıkıp tekrar girersem hala benim idem aynıdır.Ama kodu derleyip bir daha girersem o zaman yeni bir oturum oluşturulur.Uygulama bu mantıkla çalışır.Yukradaki uygulamada iki farklı sayfada kullanıcıya ait ideye erişilmiş ve aynı olduğu gösterilmiştir ve kul adi=ethem ve paroal=sulan olursa session oluşturulur.

Comments

There is one comment for this post.

  1. emine on Temmuz 12, 2011 8:55 am

    iyi günler ethem bey sizi takip ediyorum çok güzel bilgiler veriyorsunuz banada çok yardımınız dokundu.bende mysql ve javada kullanıcının oturum açıp açmadığına yani online olup olmadığına bakmak istiyorum adı ve şifre ile kontrol edicem bana yardım edebilirmsinz?

Write a Comment

Let me know what you think?