Mozna session zakladat ve filtru a if session.isNew(), pak pres
getMaxInactiveInterval dostanu defaultni timeout...
Honza

-----Původní zpráva-----
Od: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] za
uživatele Martin Kuba
Odesláno: Thursday, June 21, 2007 09:42
Komu: Java
Předmět: Re: session timeout


Stöhr Miroslav RNDr. Ph.D. wrote:
> Vážení kolegové,
> 
> nevíte jak v servletu zjistit defaultní session timeout? Tj. hodnotu, 
> která je nastavena ve web.xml? Jde to vůbec?
> 
> Jde mi o to, že nevím jestli někdo přede mnou nezavolal na session 
> metodu setMaxInactiveInterval(int interval) s nějakou jinou hodnotou
timeoutu a chtěl bych se vrátit k defaultnímu nastavení.
> 
> Díky za radu. Doufám že jsem to vysvětlil srozumitelně.


Specifikace Servlet API 2.4 říká o timeoutech pouze toto:

In the HTTP protocol, there is no explicit termination signal when a client
is
no longer active. This means that the only mechanism that can be used to
indicate when a client is no longer active is a timeout period.
The default timeout period for sessions is defined by the servlet container
and
can be obtained via the getMaxInactiveInterval method of the HttpSession
interface. This timeout can be changed by the Developer using the
setMaxInactiveInterval method of the HttpSession interface. The timeout
periods used by these methods are defined in seconds. By definition, if the
timeout period for a session is set to -1, the session will never expire.
The
session invalidation will not take effect until all servlets using that
session
have exited the service method. Once the session invalidation is initiated,
a
new request must not be able to see that session.

Javadoc k getMaxInactiveInterval povídá:

Returns the maximum time interval, in seconds, that the servlet container
will
keep this session open between client accesses. After this interval, the
servlet
container will invalidate the session. The maximum time interval can be set
with
the setMaxInactiveInterval method. A negative time indicates the session
should
never timeout.

Ty texty si IMHO odporují, protože pokud se default
hodnota dá zjistit voláním getMaxInactiveInterval(),
tak by ta stejná metoda nemohla zároveň poskytovat údaj
o aktuálně nastavené hodnotě.

Čili si myslím, že default hodnota se po změně nedá přes API zjistit.
Asi by to šlo parsováním web.xml, ale v něm hodnota být nemusí,
třeba TomCat ji má nastavenou v souboru conf/web.xml.

Makub


-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno             Martin Kuba
Institute of Computer Science    email: [EMAIL PROTECTED]
Masaryk University             http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ     mobil: +420-603-533775
--------------------------------------------------------------


Odpovedet emailem