01: /*
02: ItsNat Java Web Application Framework
03: Copyright (C) 2007 Innowhere Software Services S.L., Spanish Company
04: Author: Jose Maria Arranz Santamaria
05:
06: This program is free software: you can redistribute it and/or modify
07: it under the terms of the GNU Affero General Public License as published by
08: the Free Software Foundation, either version 3 of the License, or
09: (at your option) any later version. See the GNU Affero General Public
10: License for more details. See the copy of the GNU Affero General Public License
11: included in this program. If not, see <http://www.gnu.org/licenses/>.
12: */
13:
14: package org.itsnat.impl.core.listener.dom;
15:
16: import org.itsnat.core.event.ItsNatEvent;
17: import org.itsnat.impl.core.ItsNatDocumentImpl;
18: import org.itsnat.impl.core.event.client2serv.dom.*;
19: import org.w3c.dom.events.Event;
20: import org.w3c.dom.events.EventListener;
21:
22: /**
23: *
24: * @author jmarranz
25: */
26: public class OnUnloadListenerImpl implements EventListener {
27: public static final OnUnloadListenerImpl SINGLETON = new OnUnloadListenerImpl();
28:
29: /**
30: * Creates a new instance of OnUnloadListenerImpl
31: */
32: private OnUnloadListenerImpl() {
33: }
34:
35: public void handleEvent(Event evt) {
36: // Eliminamos el documento pues el usuario se sale de la página
37: // de otra manera la sesión referencia el documento hasta que la sesión
38: // se pierda, el problema es que un usuario que hace mucho reload puede
39: // saturar el servidor.
40: ItsNatEvent itsNatEvt = (ItsNatEvent) evt;
41: ItsNatDocumentImpl itsNatDoc = (ItsNatDocumentImpl) itsNatEvt
42: .getItsNatDocument();
43: itsNatDoc.getItsNatSessionImpl().unregisterItsNatDocument(
44: itsNatDoc);
45: }
46:
47: }
|