salve ragazzi,
dovrei utilizzare webstat per sapere le pagine piu' visitate, le prime 20.
Da codice (jsp) sapete come si fa a collegare a webstat e ottenere una lista di 20 elemnti??
GRAZIE
salve ragazzi,
dovrei utilizzare webstat per sapere le pagine piu' visitate, le prime 20.
Da codice (jsp) sapete come si fa a collegare a webstat e ottenere una lista di 20 elemnti??
GRAZIE
Come da regolamento, il crosspost è vietato su tutto il forum: hai già aperto una discussione sullo stesso argomento, non devi crearne di nuove.
Non ho idea di cosa sia webstat (posso intuirne la funzione, ma cos'è? Una piattaforma? Un servizio online?) ma le soluzioni principali che vedo sono 3:
- accedi al database con le statistiche ed estrai quanto desiderato;
- ti connetti a dei servizi esposti dal sistema (web o non web);
- ti connetti alle pagine di reportistica ed estrai dall'HTML quanto desiderato.
I primi due casi sono vincolati all'esistenza di queste funzionalità (da verificare sulla documentazione)... la terza è certamente più complessa da realizzare, ma è l'ultima spiaggia se il sistema non prevede accessi di altro tipo.
La mia risposta, naturalmente, risente del fatto che non hu un'idea precisa di cosa stiamo parlando... vuoi provare a fornire informazioni più precise?
utilizzo tomcat come server e opencms per la gestione dei contenuti.
Una volta creato il sito, devo mostrare le prime 20 pagine e documenti piu' visitati.
Ho fatto un giro su internet e ho trovato webstat e google analisys, ma non mi è chiaro 1)come funzionano 2) come richiare da jsp una funzionalità che mi estragga le prime 20 pagine piu' visitate....
Come ti ho già detto, dovresti consultare la documentazione per trovare le risposte che cerchi.
In alternativa, se si tratta solo di monitorare le pagine più visitate, puoi provare a implementare tu una cosa del genere: ad ogni richiesta vai su un DB a incrementare un counter associato a quell'URL (vedi
http://tomcat.apache.org/tomcat-5.5-...tListener.html)
mentre per ottenere le pagine più visitate fai una query sul database, ordinando i risultati in base alle "hits"
Quindi avrei l'interfaccia:
Interface ServletRequestListener
dalla quale dovrei implementare i metodi:
public void requestDestroyed(ServletRequestEvent sre)
public void requestInitialized(ServletRequestEvent sre)
allora quando siamo in una jsp dovrebbe essere invocata requestInitialized
che si connette al database e va a scriverci sopra....
ma la classe che implemeta ServletRequestListener non la devo richiamare ogni volta all'interno delle jsp?
e inoltre ServletRequestEvent che passo ai metodi come devono essere fatte?
Non ho mai avuto occasione di utilizzarla, ma ho solo visto la documentazione (cosa che consiglio di fare anche a te)...
Comunque, se si comporta come i SessionListener e i ContextListener, il tutto dovrebbe essere gestito dal servlet container: è lui che quando riceve una nuova richiesta va a invocare la classe che implementa questa servlet. L'unica cosa che dovresti fare tu (a parte scriverla) è dichiararla nel descrittore dell'applicazione web.xml, nella sezione "listeners"
scrivendo i metodi:
public void requestDestroyed(ServletRequestEvent sre)
public void requestInitialized(ServletRequestEvent sre)
e andando a mettere semplicemente la classe in listener(di web.xml) , se ne occuperebbe tomcat..giusto? tale classe in quale directory va inserita? forse in bin?
In public void requestInitialized(ServletRequestEvent sre)
dovrei collegarmi al database per scrivere su una tabella,il parametro sre come lo devo istanziare oppure cosa ci devo passare dalla jsp?
invece nel metodo public void requestDestroyed(ServletRequestEvent sre)
cosa ci devo scrivere ? forse devo scrivere il codice che chiude la connessione al database?
Inoltre hai parlato di documentazione, io ho letto e trovato le api java in merito, mi potresti consigliare un link o il materiale dal quale ti sei informato?
grazie mille per l'attenzione
Non ho avuto modo di provarla, ma se si comporta come gli altri listener sì, è così.e andando a mettere semplicemente la classe in listener(di web.xml) , se ne occuperebbe tomcat..giusto?
No, normalmente va in \WEB-INF\classes\ della tua applicazione web.tale classe in quale directory va inserita? forse in bin?
Per quanto detto, "sre" te lo setta opportunamente Tomcat e tu dalla JSP non devi fare un bel niente. Consulta la documentazione di ServletRequestEvent per verificare quali informazioni puoi ottenere.In public void requestInitialized(ServletRequestEvent sre)
dovrei collegarmi al database per scrivere su una tabella,il parametro sre come lo devo istanziare oppure cosa ci devo passare dalla jsp?
Puoi anche non metterci nulla. I due metodi vengono richiamati, rispettivamente, quando la richiesta "nasce" e quando la richiesta "muore": per quello che vuoi fare tu mi pare sensato fare tutto nel requestInitialized(). Per motivi di performance potrebbe anche essere opportuno mantenere la connessione al database sempre aperta, avviandola insieme all'applicazione (e chiudendola alla sua terminazione).invece nel metodo public void requestDestroyed(ServletRequestEvent sre)
cosa ci devo scrivere ? forse devo scrivere il codice che chiude la connessione al database?
Esatto, ho consultato anch'io la documentazione ufficiale. Per altre informazioni dovrebbe essere sufficiente cercare i nomi delle classi onlineInoltre hai parlato di documentazione, io ho letto e trovato le api java in merito, mi potresti consigliare un link o il materiale dal quale ti sei informato?