|
|
Bir kullanıcının aynı sitede farklı sayfalarda gezinirken kendisini takip etmek için ona ait bir session olmalıdır. Aksi takdirde aynı sayfayı birden fazla kişi çağırabileceğinden hangisinin hangisi olduğunu anlamak, yani bir kullanıcıyı diğerinden ayırmak mümkün olmaz. Bir kullanıcı sisteme giriş yaptığında mutlaka bu durum session'unda belirtilmeli ve diğer bütün sayfalardan bu session'a erişilebilmelidir.
HTTP protokolü 'durumsuz' ('stateless') bir protokol'dür bir request'le diğeri arasındaki bağlantı kurmak için pek fazla bir araç vermez. Session'lar ApplicationServer'da bir kullanıcının tıklamaları arasında bağlantıyı sağlarlar.
HttpSession, HttpServletRequest class'ından
HttpSession session=request.getSession();
biçiminde bir ifadeyle elde edilebilir. Bu class bir kullanıcıyı diğerinden ayırmaya yarayan 'biricik' (unique) bir id (kimlik numarası) barındırır. Bu id
String id=session.getId();
şeklinde elde edilebilir.
Bir session'un yeni olup olmadığı, yani kullaınıcının siteye yeni gelip gelmediği HttpSession'un isNew() methoduyla anlaşılabilir. Aslında request'deki getSession() methodu session yoksa yaratıp vermektedir. Yaratması istenmiyorsa
HttpSession session=request.getSession(false);
biçimde kullanılabilir. Bu durumda session daha önceden yaratılmamışsa bu method "null" döndürecektir.
Session'larda nesneler saklamak mümkündür. Bir nesne belli bir adla session'da 'bağlanır' ('bind' edilir.) Ve gerekirse başka bir servlette aynı adla geri alınabilir. Örneğin kullanıcı ismi bir servlette
session.putValue("username","ali");
şeklinde girilir. Başka bir servlet'te de
String value=(String)session.getValue("username");
biçiminde alınabilir. Bu değerin session'dan silmek için
session.removeValue("username");
|
|