Avatar billede dampnet Nybegynder
03. oktober 2002 - 10:51 Der er 10 kommentarer og
2 løsninger

session kontrol

kan man "dræbe" en session eller på en eller anden måde afvikle noget, når brugeren lukke browseren.
måske noget lig de ting man kan gøre i asp's global.asa
Avatar billede r9 Nybegynder
03. oktober 2002 - 11:03 #1
Sessionen "dør" først når den timerout. Dvs. hvad timeout er sat til i webserveren. Sessonen "dør" altså ikke idet browseren bliver lukket.

Hvis du vil tjekke mere præsist, skal du bruge ServletContextAttributesListener.

Her er et eksempel:
http://www.onjava.com/pub/a/onjava/2001/04/12/listeners.html?page=2
Avatar billede dampnet Nybegynder
03. oktober 2002 - 11:15 #2
er der ikke en function eller noget så det er muligt at lave noget på Application_OnStart og Application_OnEnd som i asp
Avatar billede disky Nybegynder
03. oktober 2002 - 11:17 #3
hvad går de to metoder ?
Avatar billede dampnet Nybegynder
03. oktober 2002 - 12:01 #4
man kan bruge dem i en fil(global.asa) som skal ligge i roden på domænet også bliver de afviklet i når den aller første bruger kommer på serveren. og den anden bliver afviklet når man lukker serveren eller webserveren ned. der findes også metoder som hedder session_OnStart og session_OnEnd, og det er dem jeg gerne vil finde liggende functioner på i jsp.

Det kan godt være jeg lige skal nævne at man kan gøre vil som helst inde i de metoder jeg har nævnt. altså man laver selv selve koden som bliver afviklet på disse tidspunkter
Avatar billede disky Nybegynder
03. oktober 2002 - 12:14 #5
session_OnEnd og session_OnStart() laver du via det eksempel du afviste fra R9.

Application_OnStart, laver du når den første session bliver oprettet.
application_OnEnd, er lidt sværere, men det kan laves.

Imodsætning til ASP skal man heldigvis i JSP tænke lidt selv, og ikke stole blindt på hvad producenten har fundet på.
Avatar billede soelvpil Nybegynder
03. oktober 2002 - 17:38 #6
Hvis din server er rimeligt ny (servlet2.3/j2ee1.3 gør du følgende):

1. Du opretter to klasser

public class MyContextListener implements javax.servlet.ServletContextListener {

  public void contextInitialized(ServletContextEvent sce) {
    System.out.println("Applikation startet");
  }

  public void contextDestroyed(ServletContextEvent sce) {
    System.out.println("Applikation lukkes");
  }
}

public class MySessionListener implements javax.servlet.http.HttpSessionActivationListener {

  public void sessionDidActivate(HttpSessionEvent hse) {
    System.out.println("Session oprettet");
  }

  public void sessionWillPassivate(HttpSessionEvent hse) {
    System.out.println("Sessionen lukkes ned");
  }
}

Disse placeres under WEB-INF/classes i din webapplikation. Udfyld selv med detaljer. Fra eventobjekterne er det muligt at få oplysninger om f.eks. hvilken session det er. Så det er altså java's pendant til asp-metoderne. Men som allerede nævnt af andre, får du ikke besked når browseren lukkes, men først når sessionen timer ud.
Avatar billede disky Nybegynder
03. oktober 2002 - 21:36 #7
soelvpil:
Er du sikker på contextDestroyed bliver kaldt ved nedlukning af server ?
Avatar billede soelvpil Nybegynder
03. oktober 2002 - 21:54 #8
Nej.

Jeg tror at den "normalt" vil blive kaldt, dvs med mindre serveren crasher totalt.

Man skal vist nok også referere til klasserne i web.xml jeg er ikke helt sikker.
Avatar billede disky Nybegynder
03. oktober 2002 - 22:00 #9
okay, selvfølgelig kan man ikke beskytte sig imod et crash.

Jeg må prøve det en dag.
Avatar billede soelvpil Nybegynder
04. oktober 2002 - 08:29 #10
Jeg må dog erkende at jeg kun selv har prøvet det med sessioner (det er en let måde at tælle online brugere på).

Jeg vil gætte på, at den med applikationen bliver kaldt, hvis man reloader webappen (hot deployment), eller hvis man lukker serveren "pænt" ned (herunder en ctrl-c i konsol-vinduet).
Avatar billede disky Nybegynder
04. oktober 2002 - 10:19 #11
Helt enig.
Avatar billede soelvpil Nybegynder
24. oktober 2002 - 20:05 #12
Har du fået svar nok?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester