Merhaba, Cookie’ler Websitelerin bilgisiyarda bıraktığı parçalarıdır. bu sayede aynı bilgisayarla websitesi tekrar ziyaret edince sizi o cookie’deki bilgilere göre tanır ve ona göre işlem yapabilir. Nerdeyse her büyük sitede kullanılan bu cookie’leri JSP’de kullanmak ile ilgili birkaç örnek yaparak anlatmaya çalışacağım.

İlk olarka cookie mantığına biraz yer vereyim. her cookie 3 parçadan oluşur. birincisi sitenizin yani cookie’nin geldiği adres, ikincisi cookie’nin değişken ismi üçüncüsü cookie’nin değeri. her site birden fazla cookie (değişken isimleri sayesinde bırakabilir). yine bu değişken isimlerini kullanarak alabilir.

Cookie Yaratma ve Gönderme

String user= “Ahmet”
Cookie cookie = new Cookie (“username”,user);
cookie.setMaxAge(60 * 60);
response.addCookie(cookie);

Üsteki kod’da ilk önce Cookie’den bir cookie yaratıp değişken ismine “username” değerine ise user veriyoruz. bu cookie’nin etkili olacağı zamanı belirtiyoruz(bu konuya sonradan daha derin inilecektir) sonrasında ise bu cookie’yi gönderiyoruz.

Cookie Alma

Cookie’yi kullanıcının bilgisayarına yerleştirdikten sonra onu almak için

String cookieName = “username”;
Cookie cookies [] = request.getCookies ();
for (int i = 0; i < cookies.length; i++){
if (cookies [i].getName().equals (cookieName)){
myCookie = cookies[i];
break;
}
}

işlemi yapılır. bu işlemde ilk satırda cookieName cookie atarken kullandığımız değişken ismimiz. Sistem bize birden fazla cookie göndermiş olabilir. cookie dizisin’den cookie’nin uzunluğunu öğrenip o sayıda işlem yapması üzerine for işlemine tabi tutuyoruz. Cookie’ler javax.servlet.http.Cookie@19b88891 gibisinden bir şekilde bize verilir. getName() metodu ile onu okunabilir hale getiriyoruz. Sonradan if aracılığı ile istediğimiz değişkenin cookie’sini tespit edip onu myCookie değişkenine atıyoruz. Bu örnekte username isimli değişkenimizin değeri olmuş oluyor.

Method

Açıklama

getComment()

Cookie’nin varsa açıklamasını gönderir, yoksa null döndürür

getMaxAge()

Cookie’nin aktif olma süresini return ile geri döndürür

getName()

Cookie’nin ismini geri döndürür

getPath()

Cookie’nin hedef olduğu tüm url’lerin prefix’lerini geri döndürür

getValue()

Cookie’nin değerini geri döndürür

setComment(String)

Eğer bir web tarayıcısı bu cookie’yi kullanıcı için hazırlamışsa, bu cookie’nin amacı comment’te ifade edilecektir.

setMaxAge(int)

Normalde bu değer verilmezse cookie tarayıcı kapanır kapanmaz silinecektir. ama bu değer cookie’nin yerleştirildikten sonra kaç zaman aktif kalacağını gösteriyor. saniye üzerinden hesaplanıyor.

setPath(String)

Bu cookie URL başlaması itibari ile sadece request ile başlamıştır hazırlanmış olmalıdır(This cookie should be presented only with requests beginning with this URL.)

setValue(String)

Cookie’nin değerini atar. bu değeri tespit ederken mümkün oldukça özel karakterlerden(parantezler boşluklar eşittir,virgül çift tırkan slah soru cümlesi gibi) kaçınılmalıdır. Boş değer tüm tarayıcılar için aynı anlama gelmeyebilir.

Örnek 1

Bu örnekte yapacağımız index.jsp’de form elementine koyacağımız bir field’e yazılanı cookie diye atayıp, sonraki girişte ise cookie’yi alıp ekrana bastırmaya çalışacağız.

Kod Bölüm 1

<%
String username=request.getParameter(“username”);
String submit=request.getParameter(“submit”);
submit = submit + ” “;
if(submit.equals(“Submit “)){
Cookie cookie = new Cookie (“username”,username);
cookie.setMaxAge(60 * 60);
response.addCookie(cookie);
}

Username değişkenli cookie’ye username değişkenini atatık. username değişkeni ise form elementinden gelen username olacak.

Kod Bölüm 2

<form method=”get” action=”index.jsp”>
<p><b>İsminizi Giriniz: </b><input type=”text” name=”username”><br>
<input type=”submit” name = “submit” value=”Submit”>
</form>

Body’de form oluşturduk.

Kod Bölüm 3

String cookieName = “username”;
Cookie cookies [] = request.getCookies ();
Cookie myCookie = null;
if (cookies != null){
for (int i = 0; i < cookies.length; i++){
if (cookies [i].getName().equals (cookieName)){
myCookie = cookies[i];
break;}}}

username değişkenli cookie’yi aldık ve myCookie’ye atadık

Kod Bölüm 4

<% if (myCookie == null) {     %>
No Cookie found with the name <%=cookieName%>
<%  } else {   %>
<p>Welcome: <%=myCookie.getValue()%>.
<% } %>

Body’de bu cookie’yi ekrana yazdırdık

 

Kaynakça

 

 

Reklamlar