below is what the servlet 3.0 specs say about session events. as the following paragraph says that we CAN determine the distinction between session invalidation because of container timeout and application calling invalidate method. i thought about it as to how it can be achieved but i'm not able to get it. please help how can we make this distinction as the specs says below
Listener classes provide the Developer with a way of tracking sessions within a Web
application. It is often useful in tracking sessions to know whether a session became
invalid because the container timed out the session, or because a Web component
within the application called the invalidate method. The distinction may be
determined indirectly using listeners and the HttpSession API methods.
OCPJP 6(100 %) OCEWCD 6(91 %)
Joined: Oct 05, 2010
It can be determined using the difference of current time and last accessed time to compare with maximum inactive interval allowed.
If the difference is more than or equal to inactive interval, The session was expired by the container else it was invalidated.