2012-05-29 36 views
5

HttpServletRequest.getSession(false)HttpServletRequest.getSession (false): Ne zaman boş değer döndürür?

Ne zaman "null" beklemeyi beklerken öğrenmek isterim: HttpSession hakkında iyi eğiticiler var mı? Ayrıntıları almak istiyorum: ne zaman invalidate()? Sonuçları nelerdir? iade edilen HttpSession'ın geçerli olup olmadığını kontrol etmem gerekiyor mu? ... < == Lütfen bir yorumda cevap verin.

+0

Ben robots.txt benim onur vermedi belirli arama motorları olduğunu fark ettim ki bir site için tam olarak yaptım. Kısacası, bir parametre olarak false ile getSession (boole) çağrısı. Varsa, bir veya boşsa, oturumu döndürür. Sonra oturumda geçersiz kılınmış bir oturumda (zaman aşımına uğradı, kapalı) bir IllegalStateException atar .getAttributeNames() çağırırsınız. – 0xCAFEBABE

cevap

4

Neredeyse hiç boş değer beklememelisiniz. Belgelerin belirttiği gibi, bir istek için etkin bir oturum yoksa (genellikle, bir isteğin filtre zincirinde bunu kontrol edersiniz), bir oturum oluşturulacaktır. Bundan boş bir değer alırsanız, altta yatan işletim sisteminde bir sorun olduğunu söylerdim: Bir seans doğurmak için yeterli hafıza akla gelirdi.

+0

İşte bana şu soruyu sormamı sağlayan örnek: http://stackoverflow.com/questions/3080203/how-could-randomly-my-session-is-null. Bunun gibi daha fazla vaka olup olmadığını merak ediyorum. Diğerleri, bir oturum için bir filtreye sahip olmanın iyi bir fikir olduğuna katılıyor mu? – AndrewBourgeois

+0

Poster dediği gibi, tecrübem ve dokümantasyona göre, eğer mevcut değilse, oturumu oluşturacak olan getSession'ı (true) denedi. Eğer yaratılmamışsa, bunun sonlu kaynaklar ya da başka bir problemle (bir posterin önerdiği gibi, bir anti-phishing teknolojisi olduğu gibi) bir problem olduğunu söyleyeyim, fakat bahsi geçen uygulama sunucusunda herhangi bir aşina değilim. erkek kedi). – 0xCAFEBABE

+0

tamam normal şartlar altında (pplikasyonunuz yeterli kaynak ile çalışıyor ...), null yapmamalısınız. Yeterince iyi (eğer bir gün için bunu açık bırakacağım, böylece eğer gerekirse başka yorum yapabilir). – AndrewBourgeois

İlgili konular