Bu Yazıda Usebean’ın session(oturum) kısmının Java class’ında ve JSP’de kullanımını anlatmaya çalışacağım
4 farklı UseBean vardır. Biz session olanı anlatacağız. Bir kullanıcı sitenize girdiğinde ve üye girişi yaptığında bunu request veya farklı bir şekilde denetler doğru ise onaylarsınız. Peki kullanıcı her sayfaya girişte tekrar tekrar kullanıcı adı ve şifresini yazmak zorunda mı? Bir kere giriş yaptıkmı çıkış yapana kadar veya tarayıcıyı kapatana kadar o kullanıcı adı şifre kısmını girmesek olur mu? İşte bunu yapabilen özel class’a usebean’in session’u denir.

JAVA APPLICATION için;

1.Adım: Bir kapet içerisinde bir class oluşturulur(ismi önemli değil ama biz usebean yapacağız)
2.Adım: Ana class’ın içine  private değişkenler tanımlar ve aynı yere set adında private değişkenimizi güncelleyecek bir metod ile get adında private değişkenimizi return ile geri döndürecek iç class’lar açarız.

Şuana kadar anlattığımız bölüm şöyle olmalı;

package pack;

public class UseBean {

    private String degiskenismi;

public String getdegiskenismi() {
            return degiskenismi;
}

    public void Setdegiskenismi(String degiskenismi) {
        this.degiskenismi = degiskenismi;
    }
}

3.Adım: Usebean.java class’ımız oluşmuş durumda. Şimdi ise main class’ımızı yazacağımız bir class oluşturalım.

public class ana {
    public static void main(String[] args) {
        pack.UseBean nesne = new pack.UseBean();
        String ahmet = "ahmetismi";
        nesne.Setdegiskenismi(ahmet);
        System.out.println(nesne.getdegiskenismi());
    }
}
Çıktı:ahmetismi

JAVA WEBAPPLICATION için;
1.Adım: Görüldüğü gibi UseBean’ı bir nesneye atadık ve metodlarını kullandık. UseBean Application’da değil JSP’de kullanmak çok daha işe yarayan birşey. pack paketinin içinde bulunan UseBean’ı aynen oluşturacağım WebApplication’daki pack isimli paketin içine atarak işlemime devam ediyorum.

2.Adım: 2 tane JSP sayfası oluşturdum. birinci sayfada bir form ve gönder butonu, ikinci sayfada ise request ile formun cevabını çeken ve usebean’a atan komut var. birinci sayfaya ek olarak eğer kullanıcı bir kere kullanıcı adı girmişse onu ekrana yazdıran bir if var.

<%–
Document : index
Created on : 14.May.2011, 01:08:14
Author : Ahmet
–%>

<%@page contentType=”text/html” pageEncoding=”UTF-8″%>
<jsp:useBean id=”user” class=”pack.UseBean” scope=”session”/>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
http://www.w3.org/TR/html4/loose.dtd”&gt;

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>
<title>UseBean Test Sayfası</title>
</head>
<body><form action=”git.jsp”><input type=”text” name=”isim” value=”” /><input type=”submit” value=”Gönder” />
</form>

<%
if(user.getdegiskenismi().equals(” “)){
out.println(“bu ilk girişiniz”);}

else{
out.println(“Merhaba ” + user.getdegiskenismi());
}
%>

</body>
</html>

Kırmızı ile yazdığım JSP’de pack paketi altındaki usebean’ı import etmek için
Mavi ile yazdığım Gönder butonu olan bir form oluşturmak için
Turuncu ile yazdığım ise eğer kullanıcı hiç giriş yapmamışsa, “bu ilk girişiniz” , yapmışsa ise ismini yazdıran if-else şart döngüsü.

3.Adım

<%–
Document : git
Created on : 14.May.2011, 01:12:08
Author : Ahmet
–%>

<%@page contentType=”text/html” pageEncoding=”UTF-8″%>
<jsp:useBean id=”user” class=”pack.UseBean” scope=”session”/>
<%String isim = request.getParameter(“isim”);%>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
http://www.w3.org/TR/html4/loose.dtd”&gt;

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>
<title>JSP Page</title>
</head>
<body>
<% user.Setdegiskenismi(isim); %>
</body>
</html>

Kırmızı:import
Mavi: Request ile formdaki değeri alma
Turuncu: alınan değeri useBean’a atama işlemini  yapar.

4.Adım:Tekrar index’imize döndüğümüzde isminizin formunuzun hemen altında yazıldığı göreceksiniz.

Püf Noktası1: Bazı Bilgisayarlar(derleyiciler) null’u yakalayamaz. yani ilk defa girdi ise usebean’ın içinde return ile döndürülen değerdeki null’u yakalayamaz. Bu tip bilgisayarlada(biride benim) UseBean’da private değişken tanımlarken şöyle tanımlarsak

private String degiskenismi = ” “;

Bu sorun da ortadan kalkacaktır. Bir UseBean’ın içinde istediğiniz kadar set-get metodları olan değişken tanımlayabileceğinizi unutmayın.

Püf Noktası2: Siz siz olun sakın benim gibi class’dan new komutu ile oluşturduğunuz nesne ile jsp session’u  yönetmeye kalkmayın. ikisi iki ayrı yönetm

Kaynakça
1) http://java.sun.com/products/jsp/tags/11/syntaxref11.fm14.html

Reklamlar