Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    203

    jee cantatore utenti online

    Ciao a tutti per la mia applicazione avrei bisogno di realizzare un contatore dei visitatori presenti sulla mia applicazione.
    Girovagando su internet ho trovato
    questo articolo ma non mi convince tanto.
    Non ho bisogno di momorizzare le utenze in un db deve solamente stampare nel footer della pagina jsp la frase: "Sono presenti " + n + "Utenti".
    La mia applicazione è realizzata con pagine jsp con scriplet all'interno servlet ejb 3.0.
    Un saluto a tutti e grazie in anticipo per l'aiuto siete come sempre fantastici.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Da una rapida occhiata, non mi sembra che lo script da te linkato salvi niente in un database.

    Piuttosto direi che salvi in un file, penso a scopo dimostrativo: potresti voler salvare in un log altre info, non solo il contatore, per esempio l'indirizzo IP e l'orario di log in, o di visita... questo non tanto perché tali dati non siano disponibili in altri luoghi (basterebbe controllare i log di tomcat/servlet container di tua scelta), ma perché potresti non avere i privilegi per accedere a tali log oppure potresti voler demandare l'eventuale verifica dei log da te creati ad un utente che non abbia, necessariamente, accesso da amministratore al servlet container.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    203
    Io non devo salvare nulla, il cliente mi ha chiesto esclusivamente di vedere a video quel numero.
    Perciò dovrei modificare il listener?
    Basta commentare le righe di codice relative al salvataggio del log?
    al posto della servlet posso includere quel codice nella pagina jsp dell footer?
    Come AS ho jboss.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    203
    Ho modificato il listner in questo modo:

    codice:
     
    
    import javax.servlet.ServletContextListener;
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContext;
    import javax.servlet.http.HttpSessionListener;
    import javax.servlet.http.HttpSessionEvent;
    import java.io.FileWriter;
    import java.io.IOException;
    
    /**
     *
     * @author 
     */
    
    public class CounterListener
            implements ServletContextListener, HttpSessionListener
    {
    
        private ServletContext context;
        private FileWriter writer;
    
        public void contextInitialized(ServletContextEvent sce) {
            context = sce.getServletContext();
            context.setAttribute("counter", new Integer(0));
        }
    
        public void contextDestroyed(ServletContextEvent sce) {
        }
    
        public void sessionCreated(HttpSessionEvent hse) {
            this.increment();
        }
    
        public void sessionDestroyed(HttpSessionEvent hse) {
            this.decrement();
        }
    
        synchronized private void increment() {
            Integer counter = (Integer)context.getAttribute("counter") + 1;
            context.setAttribute("counter", counter);
        }
    
        synchronized private void decrement() {
            Integer counter = (Integer)context.getAttribute("counter") - 1;
            context.setAttribute("counter", counter);
        }
    }
    Togliendo tutto quello che riguarda il log degli accessi che non mi occorre, e la servlet l'ho integrata nella mia jsp (nel file footer.jsp dove andrà visualizzato il contatore)
    e adesso ho questa situazione:

    codice:
     
    <%@page import="javax.servlet.ServletContext;"%>
    <%@page import="javax.servlet.http.HttpSession;" %>
    <link rel="stylesheet" type="text/css" href="css/style.css" />
    <%
    	        ServletContext context = this.getServletContext();	 
    	        HttpSession sessione = request.getSession(true);
    	        Integer counter = (Integer)context.getAttribute("counter");
        %> 
    <div id="footer">
        
    
    
            Sono presenti <%= counter %> Utenti online | Tool di Monitoraggio per xXx realizzato da xXx 
        </p>
        <a href="http://apycom.com/">
        </a>
    </div>
    Ma al momento in cui carica la pagina mi da questo errore:

    codice:
     
    11:54:28,169 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
    org.apache.jasper.JasperException: Unable to compile class for JSP: 
    
    An error occurred at line: 6 in the generated java file
    Syntax error on token ";", delete this token
    
    Stacktrace:
            at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
            at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
            at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
            at org.apache.jasper.compiler.Compiler.compile(Compiler.java:335)
            at org.apache.jasper.compiler.Compiler.compile(Compiler.java:313)
            at org.apache.jasper.compiler.Compiler.compile(Compiler.java:300)
            at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:312)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
            at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
            at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
            at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
            at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
            at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
            at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
            at java.lang.Thread.run(Thread.java:619)
    dove sbaglio?

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da n1o
    <%@page import="javax.servlet.ServletContext;"%>
    <%@page import="javax.servlet.http.HttpSession;" %>
    Nella JSP togli il punto e virgola:

    codice:
    <%@page import="javax.servlet.ServletContext" %>
    <%@page import="javax.servlet.http.HttpSession" %>
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    203
    Ok grazie mille, non avevo fatto caso a quei punto e virgola mi diceva che l'errore era alla riga sei e guardavo la.



    adesso però mi da valore null dove ho sbagliato?

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da n1o
    Ok grazie mille, non avevo fatto caso a quei punto e virgola mi diceva che l'errore era alla riga sei e guardavo la.
    Sì, diceva nella riga 6, ma del file Java generato dalla JSP, non della JSP stessa:

    An error occurred at line: 6 in the generated java file
    adesso però mi da valore null dove ho sbagliato?
    Ti dà valore null, dove? Se ti dà valore null significa che una variabile che stai cercando di usare è nulla. Verifica nei file di log del tuo Servlet Container e probabilmente avrai il trace dell'eccezione NullPointerException con l'indicazione della riga esatta.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    203
    Ciao lele grazie per la risposta,
    Purtroppo nei log di jboss non mi da nessun tipo di errore.
    Possibile che non venga aperta la sessione al momento dell'apertura dell'index della mia applicazione?

    nel messaggio mi da

    "Sono presenti null Utenti online " dove null equivale alla variabile counter che dovrebbe valorizzarsi all'apertura dell'index perchè in quel momento dovrebbe aprire una sessione o sbaglio?
    Forse devo inserire qualcosa che mi apre una sessione all'interno dell'index?
    Potrebbe esserci un errore nel web.xml ?

    Grazie mille per l'aiuto

  9. #9
    mi sa che dovresti registrare il tuo listner nel web.xml

    l'ascoltatore funziona in modo che ogni volta che avviene l'evento incrementa o decrementa ma dove viene registrato???? qui mi sa da nessuna parte.

    prova ad aggiungere il listner al web.xml e vedrai che funzionerà
    SCJP 96%

    Sono io signore che non ti perdono,io non merito punizioni, io sono potentissimo e ora che ho visto il tuo volto merito di stare in un cielo alto più alto del tuo perché non capendo chi è l’uomo hai dimostrato di essermi inferiore,tu servirai me. Da oggi mi chiamerò Satan che significa l’Avversario.

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    203
    attualmente nel web.xml il listener ha questi valori:

    codice:
     
    <servlet>
            <servlet-name>CounterListener</servlet-name>
            <servlet-class>it.poste.tool.servlet.count.CounterListener</servlet-class>
        </servlet>
    ...
    <servlet-mapping>
            <servlet-name>CounterListener</servlet-name>
            <url-pattern>/CounterListener</url-pattern>
    </servlet-mapping>
    l'ascoltatore funziona in modo che ogni volta che avviene l'evento incrementa o decrementa ma dove viene registrato???? qui mi sa da nessuna parte.
    in che senso che non viene registrato?
    Grazie per l'aiuto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.