JAVA SERVLET: I filtri
|
|
- Ada Murgia
- 8 anni fa
- Visualizzazioni
Transcript
1 JAVA SERVLET: I filtri INTRODUZIONE Quest oggi vedremo una particolarità delle servlet che è stata introdotta nelle servlet API versione 2.3. I filtri sono un potente meccanismo che è in grado di fare quello che prima veniva fatto usando il servlet chaining (concatenamento di servlet o catene di servlet) e molto di più. Non ci fermeremo a presentare solo le caratteristiche dei filtri ma vedremo anche un esempio pratico di utilizzo. Per poter capire a fondo quello che spiegherò in questo tutorial è importante avere una buona conoscenza di Java e conoscere almeno il meccanismo generale di funzionamento delle servlet. DESCRIZIONE Quando il programmatore vuole creare un nuovo filtro da poter utilizzare all interno della propria applicazione web, non deve far altro che creare una classe che implementi l interfaccia javax.servlet.filter. Vedremo poi quali metodi bisogna implementare, nel frattempo diamo una breve descrizione del meccanismo dei filtri. Come suggerisce il nome stesso lo scopo di queste classi è quello di filtrare dei contenuti. E su quali contenuti potrebbero mai agire? Ma su richiesta e risposta naturalmente o meglio sugli oggetti che implementano le interfacce ServletRequest e ServletResponse. Definire un filtro una servlet è errato per una serie di motivi: - non creano realmente una risposta al contrario delle servlet - hanno metodi differenti rispetto alle servlet, ad esempio il metodo dofilter() - non hanno i tipici metodi doget() e dopost() delle servlet normali Lo scopo dei filtri è quello di effettuare operazioni di preprocessing delle richieste e postprocessing delle risposte: intervengono quindi prima che una richiesta raggiunga una servlet o appena dopo che una risposta esca da una servlet. Ecco un esempio di servlet che preprocessa la richiesta: Schema di funzionamento: 1) Il client invia una richiesta al server e il filtro la intercetta 2) Il filtro preprocessa la richiesta, raccogliendo eventuali informazioni 3) Il filtro richiama il metodo chain.dofilter (lo vedremo meglio dopo) per invocare la prossima servlet o il webcomponent 4) Il webcomponent invocato genera la risposta. Ecco un esempio invece di servlet che postprocessa la risposta: 1
2 Schema di funzionamento: 1) Il client invia una richiesta al server e il filtro la intercetta 2) Il filtro richiama il metodo chain.dofilter 3) Il webcomponent corrispondente risponde, generando la risposta. 4) La risposta viene intercetta dal filtro e viene processata 5) La risposta eventualmente modificata viene restituita al client Come potete vedere la possibilità di utilizzo dei filtri è amplissima basta che pensiate a tutte le cose che si potrebbero fare potendo modificare una risposta http o potendo ricavare informazioni da una richiesta http. In particolare l applicazione pratica che noi vedremo sarà un esempio di filtro di autenticazione, ossia il nostro filtro fornirà un forma di protezione da tentativi di accesso non autorizzato a certe risorse sul webserver. Altri esempi di possibile filtro: una filtro che effettua del logging con informazioni riguardo al client oppure ai tempi di elaborazione delle pagine oppure un filtro di compressione dati. Prima di andare a vedere l applicazione pratica tentiamo di dare un sguardo più da vicino ai filtri. DENTRO AI FILTRI Un filtro per essere considerato tale deve implementare l interfaccia javax.servlet.filter e di conseguenza i tre metodi ad essa associati: void init(filterconfig config): in un certo senso possiamo paragonarlo al metodo init() delle servlet. Questo metodo viene invocato dal web container (tipicamente si usa Tomcat come servlet engine) prima che il filtro possa cominciare qualsiasi tipo di operazione di filtraggio e di conseguenza viene chiamato prima del metodo dofilter. Nel metodo init() del filtro è possibile svolgere eventuali inizializzazioni di variabili o parametri d ambiente. void dofilter(servletrequest request, ServletResponse response, FilterChain chain) : questo metodo esegue tutte le operazioni necessarie. In pratica viene invocato ogni qualvolta un client fa una richiesta e quindi si hanno una coppia request/response. void destroy(): come già detto per il metodo init anche qui possiamo trovare una corrispondenza col metodo destroy delle servlet. Questo metodo viene invocato alla fine del ciclo di vita del filtro ossia quando il servlet container decide di rendere inutilizzabile l istanza del filtro o quando non ci sono più thread in esecuzione sul metodo dofilter. In questo metodo può essere inserito anche del codice per liberare risorse precedentemente impegnate e ora non più utilizzate per fare un esempio banale delle connessioni ad un database o dei file ancora aperti. Insomma il metodo destroy viene invocato in fase di chiusura del servlet container o della webapplication. Due parole in più sul metodo dofilter() il più importante/interessante di un filtro. Come si può notare dalla firma del metodo abbiamo tre argomenti. 1. ServletRequest request: è un interfaccia che definisce un oggetto generico di tipo richiesta. Tipicamente viene passata una richiesta http di conseguenza un oggetto che implementi l interfaccia javax.servlet.httpservletrequest. Quest ultima è una sottointerfaccia che estende l interfaccia javax.servlet.servletrequest: è per così dire una specializzazione dell oggetto generale di richiesta per il protocollo http. 2. ServletResponse response: vale lo stesso discorso fatto sopra per la request, solo che qui parliamo di interfaccia javax.servlet.servletresponse e di sottointerfaccia javax.servlet.httpservletresponse. 3. FilterChain chain: qui parliamo dell interfaccia javax.servlet.filterchain. In questo caso abbiamo a che fare con un oggetto creato appositamente dal servlet container per fare in modo che il programmatore possa facilmente passare il controllo sugli oggetti richiesta e risposta al prossimo filtro nella catena di filtri. Il bello dei filtri è quello di poter tranquillamente costruire una catena di filtri, ognuno dei quali esegue una parte di lavoro. Ad esempio: un filtro che fa del logging, seguito da un filtro che raccoglie informazioni sulla richiesta da parte del client (browser, os, provenienza,etc.) e infine un filtro di autenticazione che si preoccupa di controllare che il client possa effettivamente accedere alla risorsa richiesta. Quando un filtro ha terminato il proprio lavoro di preprocessing può passare il controllo al filtro successivo semplicemente chiamando il metodo FilterChain.doFilter(). Nel caso non ci siano più filtri allora viene chiamata la risorsa specificata dalla richiesta. NOTA: tutti e tre gli argomenti sono interfacce, quindi non classi e vere istanze di oggetti. E compito del servlet container passare degli oggetti corrispondenti (costruiti ad arte ) che implementino le relative interfacce. Se si vanno infatti a vedere le servlet API non si troveranno classi che implementino un vero oggetto richiesta o risposta. Le classi wrapper sono un eccezione, ma in realtà esse non sono veri oggetti richiesta o risposta. 2
3 CONFIGURAZIONE DEI FILTRI Poiché i filtri possiamo considerarli alla stregua delle servlet, anche loro devono essere configurati in maniera opportuna all interno del file web.xml per funzionare correttamente nella web application. Abbiamo già accennato all inizio di come vedremo un esempio pratico di filtro di autenticazione. Il nostro filtro si chiamerà LoginFilter: vediamo quindi come configurarlo. Parte di un ipotetico file web.xml <?xml version="1.0" encoding="iso "?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" " <web-app> <filter> <filter-class>it.webtraffic.filters.loginfilter</filter-class> <init-param> <param-name>loginpage</param-name> <param-value>/index.htm</param-value> </init-param> </filter> <filter-mapping> <url-pattern>/statistiche/*</url-pattern> </filter-mapping> <filter-mapping> <url-pattern>/admin/*</url-pattern> </filter-mapping> </web-app> Osservazioni: 1. Le dichiarazioni dei filtri vanno fatte prima delle dichiarazioni delle servlet. 2. Le dichiarazioni dei filtri vanno fatte nell ordine che con cui si vuole costruire la catena di filtri. 3. I tag <filter></filter> permettono di dichiarare i filtri. 4. I tag <filter-name></filter-name> permettono di definire il nome-identificatore del filtro. 5. I tag <filter-class></filter-class> permettono di indicare la classe filtro. 6. I tag <init-param></init-param> e gli altri tag interni servono per specificare parametri di inizializzazione del filtro (come avviene per le servlet) che possono essere recuperate ad esempio nel metodo init(). 7. I tag <filter-mapping></filter-mapping> e gli altri tag interni servono per specificare quando un filtro deve essere invocato ossia in base a quali richieste. In particolare si specifica il nome del filtro che deve essere invocato e l url-pattern relativo. Nel nostro caso il filtro entra in azione quando arrivano richieste del tipo /admin/* o /statistiche/*. Per fare in maniera che il filtro entri in azione sempre si può specificare il pattern /*. Per farlo funzionare solo con particolari estensioni di file basta racchiudere tra i tag <url-pattern></url-pattern> l estensione dei file: ad esempio *.php o *.htm. 8. Possono essere specificati un numero arbitrario di mapping per i filtri (così come per le servlet). Bene, dopo questa breve ma esaustiva introduzione ai filtri vediamo un applicazione reale, in maniera da renderci contro delle potenzialità di questo meccanismo. IMPLEMENTAZIONE DI UN FILTRO DI AUTENTICAZIONE Progettare un filtro di autenticazione significa progettare un meccanismo che fornisca una forma di protezione di dati considerati sensibili e ai quali si vuole che accedano soltanto particolari categorie di utenti. Nella fattispecie (anche facendo riferimento all estratto di web.xml visto sopra) vogliamo che soltanto gli utenti privilegiati possano accedere a certi percorsi. Il codice java che vedrete qui sotto è stato scritto dal sottoscritto nell ambito di un progetto di laboratorio di reti che prevedeva lo sviluppo di un sistema di statistiche per l accesso ai siti web sul modello di shynistat. Il progetto è stato svolto assieme ad un altro mio collega all università, e mentre lui si occupava della parte di statistiche (elaborazione dei dati raccolti e generazione grafici) io mi sono occupato tra l altro anche del meccanismo di login/autenticazione. 3
4 Il codice java per quanto possibile rispecchierà l originale utilizzato nell applicazione web completa, e quando necessario aggiungerò commenti per aiutare la comprensione del funzionamento del filtro. /* * LoginFilter.java * Classe filtro che controlla i permessi di un client per l accesso * a determinati percorsi sul webserver. * Parte integrante dell applicazione web WEB TRAFFIC ANALYZER. */ package it.webtraffic.filters; import javax.servlet.*; import javax.servlet.http.*; import java.io.ioexception; import java.io.printwriter; import it.webtraffic.beans.admin; public class LoginFilter implements Filter { private String loginpage; public void dofilter(servletrequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //faccio un downcast della richiesta e della risposta. HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; //recupero la sessione del client che ha effettuato la richiesta HttpSession session = req.getsession(); //tento di recuperare il bean Admin: //si tratta di un bean contenente le informazioni riguardanti l amministratore Admin administrator = (Admin) session.getattribute("admin"); if (administrator == null) { //un utente generico ha tentato di accedere ai percorsi protetti response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<head>"); out.println("<meta http-equiv=\"refresh\" content=\"2; URL=" + loginpage +"\">"); out.println("<div align='center'><h3>effettuare IL LOGIN PRIMA DI ACCEDERE AL PERCORSO SPECIFICATO...<br><br>"); out.println("redirezione alla pagina di login in corso</h3></div>"); out.close(); //ora controllo se si tratta di un amministratore semplice o avanzato. //gli amministratori avanzati hanno la possibilità anche di accedere anche ai percorsi di tipo /admin/* //il metodo getifgod() del bean ci consente di capire se si tratta di admin semplice (false) o avanzato (true) else if (req.getrequesturi().indexof("/admin")!= -1 &&!administrator.getifgod()) { //si tratta di un amministratore semplice quindi segnalo l errore. response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<head>"); out.println("<meta http-equiv=\"refresh\" content=\"2; URL=/statistiche/statistiche/home.jsp\">"); out.println("<div align='center'><h3>impossibile ACCEDERE: NON SEI GOD ADMIN...<br><br>"); out.println("redirezione alla pagina di principale in corso</h3></div>"); out.close(); else { //nel caso le credenziali siano verificate inoltro richiesta e risposta all ipotetico prossimo filtro. chain.dofilter(req, res); /** Metodo destroy del filtro. */ public void destroy() { /** Metodo init del filtro. */ public void init(filterconfig filterconfig) throws ServletException{ //tento di recuperare il parametro loginpage che dovrebbe essere specificato nel file web.xml loginpage = "/statistiche" + filterconfig.getinitparameter("loginpage"); //se non ci riesco segnalo l errore if (loginpage == null) throw new ServletException("Init Parameter loginpage mancante: modificare il file web.xml"); 4
5 Come si può vedere il meccanismo di autenticazione implementato è piuttosto semplice ma funzionale e serve a illustrare quanto spiegato sopra. In sostanza il tutto si basa sulla presenza o meno di un attributo di sessione, un bean Admin che contiene informazioni sull eventuale amministratore. Un metodo getifgod() che ritorna un boolean inoltre ci permette di distinguere tra SIMPLE (semplice) e GOD (avanzato) ADMIN. Il grosso del lavoro viene per l appunto svolto all interno del metodo dofilter(). Il metodo destroy() risulta vuoto visto che non c è la necessità di liberare risorse, mentre nel metodo init() abbiamo tentato di recuperare il parametro di inizializzazione loginpage. CONCLUSIONI Questo è solo un esempio di come impiegare un semplice/potente meccanismo quali i filtri all interno di una web application, ora a voi divertirvi a crearne di vostri. Spero che quello che ho spiegato oggi possa avervi aiutato a scoprire un lato delle servlet che non avevate ancora analizzato. Alla prossima allora! RINGRAZIAMENTI: un particolare ringraziamento a Massimiliano Barletta, mio collega all unive col quale ho condiviso l avventura di creare il WEB TRAFFIC ANALYZER. Ci siamo aiutati a vicenda nella realizzazione del progetto che alla fine ci ha permesso di imparare molto sulle tecnologie servlet e jsp, e ci siamo incoraggiati moralmente a vicenda quando le cose sembravano non andare per il verso giusto quindi GRAZIE E AL PROSSIMO PROGETTO! NOTE AL DOCUMENTO Fonti bibliografiche: - Jason Hunter e William Crawford JAVA SERVLET PROGRAMMING seconda edizione aggiornata. - WEB TRAFFIC ANALYZER Progetto di Laboratorio di Reti anno accademico 2002/ Enterprise Java TM Technologies Tech Tips for September 19, 2002 LINK: Autore del documento: sego Permessi sul documento: l uso di questo documento è a puro scopo informativo e non a fini di lucro. Il contenuto del documento può essere usato liberamente. Nel caso utilizziate o pubblichiate sul vostro sito questo documento siete pregati di lasciarlo integro o di lasciare almeno un riferimento all autore originale. Informazioni di carattere generale: qualsiasi suggerimento o critica costruttiva è ben accetto. Se avete idee per migliorare il documento inviatemi pure una mail. La segnalazione di errori o disattenzioni è altresì ben accetta. sego(owner/webmaster of the-skulls.com) indirizzo di posta elettronica: sego@the-skulls.com sito web di riferimento: 5
Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04
Servlet API Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet Interfaccia Java che modella il paradigma richiesta/elaborazione/risposta tipico delle applicazioni lato server Presuppone l esistenza
DettagliTecnologie di Sviluppo per il Web
Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Servlet Parte a versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca
DettagliProgrammazione server-side: Java Servlet
Programmazione server-side: Java Servlet Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.11 parte II Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Cos
DettagliI file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1
I file WAR WAR è una contrazione di Web ARchive. I file WAR consentono di archiviare un intera applicazione web in un unico file. Tomcat fornisce (tramite il Tomcat Manager) un interfaccia grafica per
DettagliNote pratiche sullo sviluppo di servlet (I)
Note pratiche sullo sviluppo di servlet (I) Nel caso in cui sulla macchina locale (PC in laboratorio/pc a casa/portatile) ci sia a disposizione un ambiente Java (con compilatore) e un editor/ambiente di
DettagliTener traccia del client
Tener traccia del client Raramente un applicazione web è costituita da una singola pagina (risorsa). E utile quindi tener traccia dei client che si collegano per rendere più semplice lo sviluppo dell applicazione.
DettagliTomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni
Tomcat & Servlet Programmazione in Ambienti Distribuiti V 1.2 Marco Torchiano 2005 Contenuti Tomcat Applicazioni Web Struttura Sviluppo Deployment Servlet JSP Uso delle sessioni 1 Tomcat Tomcat è un contenitore
DettagliBreve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida
Breve introduzione curata da Alessandro Benedetti Struts2-Introduzione e breve guida 22-11- 2008 1 Struts 2 Costruisci,attiva e mantieni! Apache Struts 2 è un framework elegante ed estensibile per creare
DettagliArchitetture Web: un ripasso
Architetture Web: un ripasso Pubblicazione dinamica di contenuti. Come si fa? CGI Java Servlet Server-side scripting e librerie di tag JSP Tag eseguiti lato server Revisione critica di HTTP HTTP non prevede
DettagliApplicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi
Applicazioni web Parte 6 Java Alberto Ferrari 1 Sommario Introduzione alle API ed esempi Tomcat Server per applicazioni web Alberto Ferrari 2 Alberto Ferrari 1 Java: da applet a servlet In origine Java
DettagliGestire le sessioni con le Servlet
PROGETTO Gestire le sessioni con le Servlet Con il termine sessione si intende un insieme di attività correlate, con una o alcune di queste che sono preliminari ad altre. Si pensi, per esempio, a un qualsiasi
DettagliBasi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008
Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Avvertenze: e severamente vietato consultare libri e appunti; chiunque verrà trovato in possesso di
DettagliIntroduzione alla programmazione Http lato server in Java
Introduzione alla programmazione Http lato server in Java Tito Flagella Laboratorio Applicazioni Internet - Università di Pisa Slide API Java Titleper il Protocollo Http Programmazione Client java.net.url
DettagliSiti web centrati sui dati Architettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
DettagliModulo 4: Ereditarietà, interfacce e clonazione
Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo
DettagliInnanzitutto andiamo sul sito http://www.dropbox.com/ ed eseguiamo il download del programma cliccando su Download Dropbox.
Oggi parlerò di qualcosa che ha a che fare relativamente con la tecnica fotografica, ma che ci può dare una mano nella gestione dei nostri archivi digitali, soprattutto nel rapporto professionale con altre
DettagliLABORATORIO PER IL DESIGN DELLE INTERFACCE PEGORARO ALESSANDRO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO
CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO 1 Installazione e requisiti per il corretto funzionamento del sito: L istallazione è possibile sui più diffusi sistemi operativi. Il pacchetto
DettagliArchitettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
DettagliUniversità degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Http con java, URL Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei - Tecnologie
DettagliSiamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
DettagliLezione 1 Introduzione
Lezione 1 Introduzione Ingegneria dei Processi Aziendali Modulo 1 Servizi Web Unità didattica 1 Protocolli Web Ernesto Damiani Università di Milano I Servizi Web Un Servizio Web è un implementazione software
DettagliIl calendario di Windows Vista
Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative
DettagliGESTIONE NEWSLETTER 2 CREAZIONE NEWSLETTER
GESTIONE NEWSLETTER 1 INTRODUZIONE In questa sezione vedremo come gestire la creazione e l invio delle Newsletter e come associarle alle Liste Clienti e alle Liste Email. Grazie a un editor avanzato è
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
Dettaglif(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da
Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede
DettagliEsercizi su. Funzioni
Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità
DettagliLaboratorio di Basi di Dati
Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 9 Architettura Model-View-Controller (MVC) Adottando l'architettura MVC e la tecnologia Servlet-JSP, un'applicazione web può essere realizzata
DettagliGuida alla registrazione on-line di un DataLogger
NovaProject s.r.l. Guida alla registrazione on-line di un DataLogger Revisione 3.0 3/08/2010 Partita IVA / Codice Fiscale: 03034090542 pag. 1 di 17 Contenuti Il presente documento è una guida all accesso
DettagliJoomla! 2.5:Utenti e permessi - Il wiki di Joomla.it
Pagina 1 di 6 Joomla! 2.5:Utenti e permessi Da Il wiki di Joomla.it. Traduzione (http://cocoate.com/it/j25it/utenti) dal libro Joomla! 2.5 - Beginner's Guide (http://cocoate.com/j25/users-permissions)
DettagliCominciamo dalla barra multifunzione, ossia la struttura a schede che ha sostituito la barra dei menu e la barra delle icone (Figura 1).
La barra multifunzione La barra multifunzione e il pulsante Microsoft Office Se avete lavorato per tanti anni con la suite da ufficio Office, questa nuova versione 2007 può disorientarvi davvero molto.
DettagliServer-side Programming: Java servlets Parte II
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni Corso di Reti di Applicazioni Telematiche a.a. 2009-2010 Server-side Programming:
DettagliJoomla: Come installarlo e come usarlo. A cura di
Joomla: Come installarlo e come usarlo. A cura di In questa dispensa andremo a vedere come si installa joomla sul noto software xampp e come viene usato per creare siti web dinamici. Tecnol earn Firmato
DettagliLA GESTIONE DELLE VISITE CLIENTI VIA WEB
LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici
DettagliRealizzazione di una chat su protocollo HTTP
Università di Pisa Università di Pisa Percorsi Abilitanti Speciali (PAS) Percorsi Abilitanti Speciali (PAS) Realizzazione di una chat su protocollo HTTP Realizzazione di una chat su protocollo HTTP Feo
DettagliRMI Remote Method Invocation
RMI Remote Method Invocation [Pagina intenzionalmente vuota] (1 12 2004) slide 4:1/18 (p.106) Un applicazione RMI è un applicazione distribuita ad oggetti. Applicazione RMI tipica, strutturata in: server:
DettagliL architettura MVC (Model- View-Controller) Introduzione
L architettura MVC (Model- View-Controller) Introduzione Architettura MCV L architettura MVC è un insieme di regole per strutturare un sito-web dinamico. Queste regole complicano la struttura del sito,
DettagliPlaze, il termine che definirà un nuovo concetto di piazza
, il termine che definirà un nuovo concetto di piazza Crema 19-20 Settembre 2013 Gianluca Vaccaro The first on the road social network 1 Cosa è? è un Social Network il cui scopo è quello di avvicinare
DettagliProgettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
DettagliEXPLOit Content Management Data Base per documenti SGML/XML
EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per
DettagliCorso html 5. Di Roberto Abutzu. *********** Terza parte: Prime nozioni: Tag e prima pagina, continuazione. **********
Corso html 5. Di Roberto Abutzu. *********** Terza parte: Prime nozioni: Tag e prima pagina, continuazione. ********** Prime nozioni: Tag e prima pagina, continuazione. Nota bene, al fine di avere anche
DettagliMac Application Manager 1.3 (SOLO PER TIGER)
Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i
DettagliCOMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO. 2015 e PARAMETRI2015
COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO. 2015 e PARAMETRI2015 Vicenza, 3 giugno 2015 Gentile cliente, si ricorda che a partire dall aggiornamento PROFIS 2011.1 è stato automatizzato
DettagliIntroduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6
Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...
Dettagli1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages
1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages Le JSP DynPages sono un utile strumento, fornito da SAP Netweaver, per una gestione più evoluta di event handling e session
DettagliFile, Modifica, Visualizza, Strumenti, Messaggio
Guida installare account in Outlook Express Introduzione Questa guida riguarda di sicuro uno dei programmi maggiormente usati oggi: il client di posta elettronica. Tutti, ormai, siamo abituati a ricevere
DettagliArchitettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3
Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 Verso l architettura MVC-2 2 Il secondo passo verso l architettura MVC-2 è quello di separare il controllo dell
DettagliNUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.
NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. Con l utilizzo delle procedure di iscrizione on line la società organizzatrice ha a disposizione tutti
DettagliPorting Su Hostingjava
Porting Su Hostingjava Consigli per il caricamento di una propria applicazione su hostingjava Il porting è una operazione con cui un programma, sviluppato originariamente per una piattaforma, viene"ritoccato"
DettagliSITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.
Progetto SITI Manuale Utente SITI-Reports ABACO S.r.l. ABACO S.r.l. C.so Umberto, 43 46100 Mantova (Italy) Tel +39 376 222181 Fax +39 376 222182 www.abacogroup.eu e-mail : info@abacogroup.eu 02/03/2010
DettagliManuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1
Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ Versione 1.1 Autore Antonio Barbieri, antonio.barbieri@gmail.com Data inizio compilazione 11 maggio 2009 Data revisione 14 maggio 2009 Sommario
DettagliTecnologie di Sviluppo per il Web
Tecnologie di Sviluppo per il Web Applicazioni Web J2EE Altri Componenti versione 3.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it
DettagliUso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
DettagliModulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress
Copyright Andrea Giavara wppratico.com Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress 1. Il pannello amministrativo 2. I dati importanti 3. Creare il database - Cpanel - Plesk
Dettagli19. LA PROGRAMMAZIONE LATO SERVER
19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici
DettagliGUIDA ALLA PROGRAMMAZIONE GRAFICA IN C
GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C.:luxx:. PREMESSE In questa guida non verranno trattati i costrutti di flusso, le funzioni, o comunque le caratteristiche del linguaggio, che si danno come presupposte.
DettagliSiti interattivi e dinamici. in poche pagine
Siti interattivi e dinamici in poche pagine 1 Siti Web interattivi Pagine Web codificate esclusivamente per mezzo dell HTML non permettono alcun tipo di interazione con l utente, se non quella rappresentata
DettagliCome si può vedere, la regola è stata fatta in modo da spostare tutti i messaggi di Spam nella cartella del cestino.
www.playnet.it agg. Documento 1/03/2007 REGOLE DEL CLIENT Le regole del client sono un sistema di smistamento dei messaggi (arrivati) fra le varie cartelle di posta presenti sul server. Possono essere
DettagliLight CRM. Documento Tecnico. Descrizione delle funzionalità del servizio
Documento Tecnico Light CRM Descrizione delle funzionalità del servizio Prosa S.r.l. - www.prosa.com Versione documento: 1, del 11 Luglio 2006. Redatto da: Michela Michielan, michielan@prosa.com Revisionato
DettagliIl Protocollo HTTP e la programmazione di estensioni Web
Il Protocollo HTTP e la programmazione di estensioni Web 1 Il protocollo HTTP È il protocollo standard inizialmente ramite il quale i server Web rispondono alle richieste dei client (prevalentemente browser);
DettagliSOMMARIO... 3 INTRODUZIONE...
Sommario SOMMARIO... 3 INTRODUZIONE... 4 INTRODUZIONE ALLE FUNZIONALITÀ DEL PROGRAMMA INTRAWEB... 4 STRUTTURA DEL MANUALE... 4 INSTALLAZIONE INRAWEB VER. 11.0.0.0... 5 1 GESTIONE INTRAWEB VER 11.0.0.0...
DettagliDatabase e reti. Piero Gallo Pasquale Sirsi
Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente
DettagliPER VISUALIZZARE I CONTENUTI DI ARGO SCUOLA NEXT E NECESSARIO UTILIZZARE MOZILLA FIREFOX COME BROWSER DI NAVIGAZIONE.
PER VISUALIZZARE I CONTENUTI DI ARGO SCUOLA NEXT E NECESSARIO UTILIZZARE MOZILLA FIREFOX COME BROWSER DI NAVIGAZIONE. CHI NON DISPONE DI QUESTO BROWSER O NON NE HA UNA VERSIONE AGGIORNATA (ATTUALMENTE
DettagliADDING SOCIAL PLUGINS TO YOUR OWN SITE
ADDING SOCIAL PLUGINS TO YOUR OWN SITE Aggiungere SOCIAL PLUGINS al proprio sito è ormai materia quotidiana per coloro che si cimentano nella creazione di un sito internet, infatti, possiamo trovare implementazioni
DettagliMODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it
MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo
DettagliSpring WS Sviluppare WebService in Java
Spring WS Sviluppare WebService in Java 1.1 Introduzione Nell ambito della programmazione Java è particolarmente utile avere una certa familiarità con i WebService e la tecnologia che li supporta. In particolare
DettagliStatistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.
Iniziamo con definizione (capiremo fra poco la sua utilità): DEFINIZIONE DI VARIABILE ALEATORIA Una variabile aleatoria (in breve v.a.) X è funzione che ha come dominio Ω e come codominio R. In formule:
DettagliBanca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste
Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)
DettagliIL MIO PRIMO SITO: NEWS
Pagina 1 IL MIO PRIMO SITO: NEWS Sommario IL MIO PRIMO SITO: NEWS...1 Introduzione...2 I Contenitori...2 Creo un Contenitore...3 I Tracciati...4 Creo le Notizie...6 Inserisco il Testo...6 Inserisco un
DettagliBuongiorno vi ringrazio nuovamente per avermi invitato sono molto lieto di assistervi nella vendita della vostra casa
A ACQUISIZIONE INCARICO PRESENTAZIONE DA 1 MINUTO Buongiorno vi ringrazio nuovamente per avermi invitato sono molto lieto di assistervi nella vendita della vostra casa Posso dare un occhiata veloce alla
DettagliApplication Server per sviluppare applicazioni Java Enterprise
Application Server per sviluppare applicazioni Java Enterprise Con il termine Application Server si fa riferimento ad un contenitore, composto da diversi moduli, che offre alle applicazioni Web un ambiente
DettagliUniversità per Stranieri di Siena Livello A1
Unità 20 Come scegliere il gestore telefonico CHIAVI In questa unità imparerai: a capire testi che danno informazioni sulla scelta del gestore telefonico parole relative alla scelta del gestore telefonico
DettagliProgettazione e realizzazione di un applicativo Web Annunci Immobiliari
Corso di Gestione dell Informazione Studenti NON frequentanti A.A. 2009/2010 Progettazione e realizzazione di un applicativo Web Annunci Immobiliari 1 Scopo del progetto Si vuole realizzare un applicazione
DettagliGuida alla configurazione della posta elettronica dell Ateneo di Ferrara sui più comuni programmi di posta
Guida alla configurazione della posta elettronica dell Ateneo di Ferrara sui più comuni programmi di posta. Configurazione Account di posta dell Università di Ferrara con il Eudora email Eudora email può
DettagliDocumentazione API web v 1.0
Documentazione API web v 1.0 Web: www.kalliopepbx.it Supporto tecnico: kalliope-pbx@netresults.it Documentazione API web v1.0-1 - Rev.: 16-11-2012 Documentazione API web v1.0-2 - Rev.: 16-11-2012 Changelog
DettagliProgrammazione a Oggetti Modulo B
Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione
DettagliPer scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
DettagliINSTALLAZIONE JOOMLA SU SPAZIO WEB FREE ALTERVISTA
INSTALLAZIONE JOOMLA SU SPAZIO WEB FREE ALTERVISTA Questa vuole essere una breve tutorial su come installare Joomla su uno spazio Web gratuito, in particolare faremo riferimento ai sottodomini gratuitamente
DettagliInformatica per la comunicazione" - lezione 13 -
Informatica per la comunicazione" - lezione 13 - Funzionamento di una password" 1: l utente tramite il suo browser richiede l accesso a una pagina del server; 2: il server richiede il nome utente e la
DettagliFasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)
Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Sede di Latina Laurea in Ingegneria dell Informazione Fasi del ciclo di vita del software (riassunto) Corso di PROGETTAZIONE DEL SOFTWARE
DettagliIl tutor è a disposizione per ogni chiarimento
INDICAZIONI PER ESSERE OPERATIVI Alcune istruzioni per rendervi la vita più facile e accedere alle risorse del percorso online di Sociologia intuitivamente Il tutor è a disposizione per ogni chiarimento
DettagliSistema di gestione Certificato MANUALE PER L'UTENTE
Sistema di gestione Certificato MANUALE PER L'UTENTE Pagina 1 di 16 Indice 1 Introduzione...3 2 Genera certificato...4 3 Sospendi certificato...10 4 Riattiva certificato...12 5 Revoca certificato...14
Dettagli10 - Programmare con gli Array
10 - Programmare con gli Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
DettagliLezione II: Web server e ambiente di lavoro
Lezione II: Web server e ambiente di lavoro In questa lezione, in laboratorio, si mostrerà quali sono i passi necessari per creare ed eseguire una pagina ASP. Brevemente, verrà fatto anche vedere, come
DettagliNelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento
I protocolli del livello di applicazione Porte Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere
DettagliGUIDA ALL ACQUISTO DELLE FOTO
1 GUIDA ALL ACQUISTO DELLE FOTO Gentile Utente questa guida vuole offrirle un aiuto nella selezione e nell acquisto delle foto dal nostro carrello elettronico. La invitiamo a Stampare questo breve manuale
DettagliPresentazione Data Base
Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mysql) come supporto Open Source ad un piccolo progetto di Data Base relazionale, e tipicamente ad ogni applicazione non troppo
DettagliMOCA. Modulo Candidatura. http://www.federscacchi.it/moca. moca@federscacchi.it. [Manuale versione 1.0 marzo 2013]
MOCA Modulo Candidatura http://www.federscacchi.it/moca moca@federscacchi.it [Manuale versione 1.0 marzo 2013] 1/12 MOCA in breve MOCA è una funzionalità del sito web della FSI che permette di inserire
DettagliPHP e MySQL. Guida scaricata da www.webstyling.it
Home -> Manuali & Tutorials -> Guida PHP PHP e MySQL E' possibile realizzare delle applicazioni in php appoggiandosi ad un database, quale ad esempio MySQL. Con le novità introdotte ai tempi di MySQL 4.1
DettagliCOOKIES COSA SONO I COOKIES? COME UTILIZZIAMO I COOKIES?
COOKIES Per far funzionare bene questo sito, a volte installiamo sul tuo dispositivo dei piccoli file di dati che si chiamano cookies. Anche la maggior parte dei grandi siti fanno lo stesso. COSA SONO
DettagliTrascrizione completa della lezione Lezione 002
Trascrizione completa della lezione Lezione 002 Adam: Salve, il mio nome e Adam Kirin: E io sono Kirin. Adam: e noi siano contenti che vi siete sintonizzati su ChineseLearnOnline.com dove noi speriamo
DettagliBrand Il primo corso per gli imprenditori che vogliono imparare l arma segreta del Brand Positioning Introduzione
Il primo corso per gli imprenditori che vogliono imparare l arma segreta del Brand Positioning Un corso di Marco De Veglia Brand Positioning: la chiave segreta del marketing Mi occupo di Brand Positioning
DettagliManuale di KNetAttach. Orville Bennett : Luigi Toscano
Orville Bennett : Luigi Toscano 2 Indice 1 Introduzione 5 2 Uso di KNetAttach 6 2.1 Aggiungere cartelle di rete................................. 6 3 KNetAttach in pochi passi 9 4 Riconoscimenti e licenza
DettagliProgettazione di una base di dati Ufficio della Motorizzazione
Corso di Gestione dell Informazione Studenti NON frequentanti A.A. 2008/2009 1 Scopo del progetto Progettazione di una base di dati Ufficio della Motorizzazione Si vuole realizzare un applicazione base
DettagliServizio Feed RSS del sito CNIT
Servizio Feed RSS del sito CNIT Informiamo tutti gli utenti CNIT che è possibile sincronizzare i propri Reader (RSS) per essere aggiornati in tempo reale sulle nuove pubblicazioni di articoli postati sul
Dettagli4.1.1.1 APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO
4.1 PER INIZIARE 4.1.1 PRIMI PASSI COL FOGLIO ELETTRONICO 4.1.1.1 APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO L icona del vostro programma Excel può trovarsi sul desktop come in figura. In questo caso basta
DettagliDa dove nasce l idea dei video
Da dove nasce l idea dei video Per anni abbiamo incontrato i potenziali clienti presso le loro sedi, come la tradizione commerciale vuole. L incontro nasce con una telefonata che il consulente fa a chi
DettagliSoluzione dell esercizio del 12 Febbraio 2004
Soluzione dell esercizio del 12/2/2004 1 Soluzione dell esercizio del 12 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. 2. Modello concettuale
DettagliMANUALE MOODLE STUDENTI. Accesso al Materiale Didattico
MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...
Dettagli(fonte: http://www.agenziaentrate.gov.it/wps/content/nsilib/nsi/documentazione/fatturazione +elettronica+pa+-+regole+generali/ )
Fattura elettronica: cos è? È un tipo di fattura in formato XML e non un semplice.pdf o scansione della solita fattura. Il formato XML garantisce la conversione dei file per l elaborazione con i principali
Dettagli