Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
Yeni bir proje açtığımda otomatik olarak SessionBean1 oluşturuyor.
public class SessionBean1 extends AbstractSessionBean {};
Bu sessionbean'e bir sayfadan getSessionBean1(); ile ulaşabiliyorum sanırım. Bu şekilde ulaşıp
getSessionBean1().saveData("deneme", "deneme123");
şeklinde bir veri ekliyorum.Bu veriyi
getSessionBean1().retrieveData("deneme")
şeklide tekrar okuyabiliyorum ama farklı bir sayfaya yöndendikten sonra tekrar okuyamıyorum. null oluyoru değer.
Başka sayfalardan session'u okumak için ne yapmalıyım?
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
getSessionMap().put("deneme", "burak");
getSessionMap().get("deneme")
Böyle yaptım oldu
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
safter
Kayıt: 18.04.2006 |
|
öncelikle daima session üreten bir fonksiyona neden ihtiyac duydugunu cok merak ettim :) performans acısında session sayısı dej avantaj; eger elinde bir sürü veri varsa ve bunları her istedigin yerde her zaman cekmek istiyorsan sadece bir session ve bir hashmap kullanmak yeterince işini görür ve performansı yükseltir. misal ;
HashMap hash = new HashMap();
hash.put("denemeKey","denemeInfo");
hash.put("denemeKey1","denemeInfo1");
hash.put("denemeKey2","denemeInfo2");
hash.put("denemeKey3","denemeInfo3");
hash.put("denemeKey4","denemeInfo4");
HttpSession session = request.getSession(true);
session.setAttiribute("myHash",hash);
istedigin yerde ; session.getAttiribute(hash); diyerek kullanabilirsin tabi bunu cekerkende yine bir HashMapa atıp kullanman gerekecek,
ben tam istedigin cevabı verdim mi bilmiyorum ama benim anladıgım sorunun cevabı bu
q
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
Benim sorunum henüz beanları tam olarak kavrayamamış olmammış(Kavrama sürecindeyim).
Benim sessiona sadece kullanıcı bilgilerini yazmam lazım. id, username... gibi.
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
safter
Kayıt: 18.04.2006 |
|
kullanıcı bilgilerin nerden alıyorsun web browserden mi? eger ordan alıyorsa request.getParameter(); metodu kullan onuda hash'a at onuda sessiona...
örnek
ön tarafta bir input fieldine user name i yazmış ol input fieldin adı user olsun
java tarafından;
HashMap hash = new HashMap();
hash.put("userName",request.getParameter("user"));
..
.. noktalar şifre felan yani diger girişler
..
session.setAttiribute("kullanıcı bilgileri",hash);
q
|
|
Yazar |
|
orhan
istanbul
admin
Kayıt: 17.11.2005 |
|
bi tane userbean yap ona gerekli property leri ekle sonra onu faces-config den session olarak ayarla o beanin property sini değiştirdiğinde sessiondaki değeri de değişmiş olur.
N/A
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
<h:commandButton value="Session Sil" action="#{Bean.ClearSession}" />
Şöyle bir butonum var.
public String ClearSession() {
ExternalContext G = FacesContext.getCurrentInstance().getExternalContext();
HttpSession session = (HttpSession) G.getSession(true);
session.removeAttribute(key);
}
Bu butona basılınca session siliniyor bunda problem yok. Ama sayfanın constructor çalıştıktan sonra siliniyor. Bende constructor'da bazı verileri bu sessiona göre veritabanından çekiyorum ve sonuç olarak sayfamda veriler görünüyor.
f:param kullanarak çözebilirm sanırım bu problemi ama başka çözüm yolu varmı ?
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
orhan
istanbul
admin
Kayıt: 17.11.2005 |
|
actioneventine yaz kodu
N/A
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
orhan yazdi
action="#{Bean.ClearSession} yerine ne yazmalıyım? actionevent bi attribute mü?
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
orhan
istanbul
admin
Kayıt: 17.11.2005 |
|
actionlistener ine yaz bu kodu.
N/A
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
orhan yazdi | actionlistener ine yaz bu kodu. |
<h:commandButton value="Yeni Nesne" actionListener="#{Bean.ClearSession}" />
public void ClearSession(ActionEvent e) {
deleteFromSession(tableKeyName);
}
Bu şekilde yaptım sessionun silmiyor bile :S
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
orhan
istanbul
admin
Kayıt: 17.11.2005 |
|
yukarıda yazmış olduğun kod session dan belli bir key e ait attribute yi siler session u invalidate etmezki
N/A
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
orhan yazdi | yukarıda yazmış olduğun kod session dan belli bir key e ait attribute yi siler session u invalidate etmezki |
evet sadece o key'i silmeye çalışıyorum. Siliniyor ama constructor çalıştıktan sonra
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
orhan
istanbul
admin
Kayıt: 17.11.2005 |
|
actionlistener metoduna şunuda eklersen düzelir.
e.getComponent().processUpdates();
N/A
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
orhan yazdi | actionlistener metoduna şunuda eklersen düzelir.
e.getComponent().processUpdates(); |
public void ClearSession(ActionEvent e) {
e.getComponent().processUpdates(FacesContext.getCurrentInstance());
deleteFromSession(tableKeyName);
}
Bu şekilde yazdım yine constructor önce çalışıyor :S. Bu fosnkyonunun parametresi doğrumu?
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | | | | | | | |