SORU
25 HAZİRAN 2010, Cuma


SessionTimeout: web.xml vs oturumu.()maxİnactiveİnterval

Bir zaman aşımı için çalışıyorumHttpSessionJava. Benim konteyner Gidin.

Şu anda, bizim oturum zaman aşımı olarak belirledikweb.xmldosyası, bu gibi

<session-config>
    <session-timeout>15</session-timeout>
</session-config>

Şimdi, bu Oturum (Tüm oturumlar?) sona erecektir bana öyle söylendi kullanım 15 dakika içinde ne olursa olsun kendi etkinliği.

Eğer bu yaklaşım doğru olup olmadığını merak ediyorum, ya da ben programlama yoluyla hareketsizlik zaman sınırı koymak zorundadır

session.setMaxInactiveInterval(15 * 60); //15 minutes

15 dakika, 15 dakika boyunca devre dışı olmuştur o sadece tüm oturumlar bırakmak istemiyorum.

Bu yöntemler eşdeğer mi? İyilik yapayımweb.xmlconfig?

CEVAP
25 HAZİRAN 2010, Cuma


Şimdi, bu Oturum (Tüm oturumlar?) sona erecektir bana öyle söylendi kullanım 15 dakikane olursa olsun faaliyetleri.

Buyanlış. Sadece ilgili istemci (tarayıcı) 15 dakikadan fazla bir süre için siteye erişilen zaman oturumu öldürecek. Bu faaliyet kesinlikle tam olarak başlangıçta, bunu çözmek için girişimde görmek beklendiği gibi sayar.

HttpSession#setMaxInactiveInterval() bu kadar işte bu arada değiştirmez. Tam olarak bu program aracılığıyla çalışma zamanı sırasında ayarlamak/değiştirmek tek fark web.xml <session-timeout> ile aynı. Bu arada değişiklik yalnızca geçerli oturum örneği, genel olmayan (başka static bir yöntem olurdu) etkiler.


Oynamak ve bu deneyim içinkendini, <session-timeout> 1 dakika olarak ayarlayın ve aşağıdaki gibi HttpSessionListener bir oluşturmak için deneyin

@WebListener
public class HttpSessionChecker implements HttpSessionListener {

    public void sessionCreated(HttpSessionEvent event) {
        System.out.printf("Session ID %s created at %s%n", event.getSession().getId(), new Date());
    }

    public void sessionDestroyed(HttpSessionEvent event) {
        System.out.printf("Session ID %s destroyed at %s%n", event.getSession().getId(), new Date());
    }

}

(eğer Sunucu üzerinde değil 3.0 henüz ve böylece @WebListener gibi web.xml sonra kayıt) kullanın:

<listener>
    <listener-class>com.example.HttpSessionChecker</listener-class>
</listener>

Bu servletcontainer hemen sonra seans yok olmayacak unutmayıntam olarakzaman aşımı değeri. Belirli aralıklarla (~15 örneğin 5 dakika yük bağlı ve servletcontainer/türü) çalıştıran bir arka plan iş. Bu yüzden destroyed çizgi hemen hareketsizlik tam bir dakika sonra konsol görmüyorsun zaman şaşırmayın. Sen-zamanlı ama--yok-henüz bir oturumda bir HTTP isteği ateş, ancak, derhal imha edilecek.

Ayrıca Bkz:

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BSA

    BSA

    9 NİSAN 2012
  • Flohoo

    Flohoo

    12 EYLÜL 2009
  • LAHWF

    LAHWF

    5 Kasım 2009