Statistiche di accesso con JSP e MySQL
Pagina 1 di 5
In questo articolo vedremo come creare, con JSP (Java Server Pages) ed un database MySql, un semplice sistema di gestione delle statistiche di accesso ad un sito web. Quindi analizzeremo alcune operazioni importanti, ad esempio come effettuare l'accesso al database direttamente dal Web Container, in quanto non lavoriamo interamente nel contesto J2EE (Enterprise Edition) ma direttamente dal Web Server senza passare per gli Entity Bean.
Il sistema che implementeremo sarà in grado di rilevare gli utenti online, l'ultimo accesso e creare un archivio storico di tutte le visite, dove in seguito è possibile eseguire altri tipi di report come, ad esempio, calcolare il numero di visitatori giornalieri, mensili e annuali e tanto altro. La cosa fondamentale è tenere traccia di tutte le informazioni importanti che caratterizzano un utente che accede alle pagine del sito; una volta immagazzinati i dati potremo costruire report per ogni esigenza.
Struttura delle tabelle MySql
La prima operazione è, ovviamente, quella di creare la tabella MySql dove memorizzare i dati per le statistiche di accesso, cioè la tabella che mantiene tutto l'archivio storico delle visite.
Per ogni accesso, infatti, andremo a memorizzare i dati più importanti che ci vengono inviati tramite la richiesta HTTP che il client effettua quando accede al sito. Queste informazioni sono:
- IP: l'indirizzo IP del client che si collega al sito
- USER-AGENT: la stringa che normalmente descrive il browser (IE, Firefox, Chrome etc. ) ma può essere anche uno spider o crawler
- REFERER: l'url di provenienza che è nullo in caso l'accesso è diretto
- SYSOP: una stringa che identifica il sistema operativo
- LANGUAGE: una stringa che identifica la lingua di provenienza del client
CREATE DATABASE `stat`Questo è il codice SQL della tabella che chiameremo userlog:
CREATE TABLE `stat`.`userlog` ( `IP` varchar(19) NOT NULL, `TIME_ACCESS` varchar(100) NOT NULL default '0000-00-00 00:00:00', `SYSOP` varchar(300) default NULL, `USER_AGENT` varchar(300) default NULL, `LANGUAGE` varchar(300) default NULL, `REFERER` varchar(300) default NULL, PRIMARY KEY USING BTREE (`IP`,`TIME_ACCESS`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Implementazione Servlet/JSP
Adesso dobbiamo preparare il nostro ambiente di sviluppo JSP per creare l'applicazione.
Per poter utilizzare MySql dobbiamo importare nel progetto la libreria adatta. Su NetBeans o Eclipse basta selezionare con il tasto destro del mouse sul progetto, poi su Properties - Library - Add Library (Java Build Path per Eclipse) e selezionare MySQL JDBC Driver. Se la libreria non è presente la possiamo scaricare a questa pagina. Per importarla nel progetto bisogna scompattare l'archivio tar o zip ed integrare il JAR File con la stessa procedura ma selezionando Add JAR/Folder.







