Avatar billede dennish Nybegynder
10. februar 2007 - 21:18 Der er 8 kommentarer og
1 løsning

lave en tæller("global") på en jsp side

Hej jeg er ved at lave et forum, hvor der skal være en tæller der viser hvor mange visninger der ved en given tråd dvs. hver gang en person har klikket sig ind på en jsp side vil den pågældende tæller tælles en op. Det er flere er flere personer der kan se denne side så tælleren skal være en for for en global variabel. Jeg har allerede lave en tabel i databasen der også gerne skulle gemme denne værdi så det forbliver permanent. Er der nogen der har nogle gode ideer/løsningsforslag til hvordan jeg lige kan lave dette ?.
Avatar billede arne_v Ekspert
10. februar 2007 - 21:44 #1
En HashMap gemt i enten application eller en egen singleton klasse med side som key
og counter som value.

Opdateres altid og skrives til databaseen gang imellem.

Husk at synchronize adgangen.
Avatar billede dennish Nybegynder
10. februar 2007 - 23:05 #2
Øhh kan du forklare lidt nærmere. Er ikke helt med
Mener du at jeg skal gemme en oprette en HashMap og gemmen den i application scope ?, skal jeg så skrive til denne Hashing funktion hvergang jeg vil have min counter til at incrementere ?

Singleton skal den være i scope page, øhh hvordan incrementeres den lige ?
Det skal lige siges at jeg sidder på en JBoss server
Avatar billede arne_v Ekspert
10. februar 2007 - 23:27 #3
ja
ja
skal jeg bixe et super simpelt eksempel ?
hvis du bruger at gemme i application scope skal du ikke bruge en singleton
Avatar billede dennish Nybegynder
11. februar 2007 - 01:36 #4
Du må meget gerne bixe et simpelt eksempel sammen. Vil være taknemmelig for det
Og ja jeg vil gerne undgår singleton :-)
Avatar billede arne_v Ekspert
11. februar 2007 - 01:50 #5
det følgende er lidt noget slam kode men det kan nok give nogle ideer !
Avatar billede arne_v Ekspert
11. februar 2007 - 01:51 #6
pageone.jsp
===========

<jsp:useBean id="counter" class="java.util.HashMap" scope="application"/>
<%
synchronized(counter) {
    int mycount = 0;
    if(counter.get("pageone") != null) {
        mycount = ((Integer)counter.get("pageone")).intValue();
    }
    mycount++;
    counter.put("pageone", new Integer(mycount));
}
%>
I am page one !
<hr>
Counters:
<ul>
<li>page one: <%=counter.get("pageone")%>
<li>page two: <%=counter.get("pagetwo")%>
</li>
Avatar billede arne_v Ekspert
11. februar 2007 - 01:51 #7
pagetwo.jsp
===========

<jsp:useBean id="counter" class="java.util.HashMap" scope="application"/>
<%
synchronized(counter) {
    int mycount = 0;
    if(counter.get("pagetwo") != null) {
        mycount = ((Integer)counter.get("pagetwo")).intValue();
    }
    mycount++;
    counter.put("pagetwo", new Integer(mycount));
}
%>
I am page two !
<hr>
Counters:
<ul>
<li>page one: <%=counter.get("pageone")%>
<li>page two: <%=counter.get("pagetwo")%>
</li>
Avatar billede dennish Nybegynder
23. februar 2007 - 17:49 #8
takker arne smider du et svar
Avatar billede arne_v Ekspert
23. februar 2007 - 18:03 #9
ok
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