Corso Java/J2EE per PM/software architect Servlet

Slides:



Advertisements
Presentazioni simili
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Advertisements

Gli ipertesti del World Wide Web Funzionamento e tecniche di realizzazione a cura di Loris Tissìno (
Socket Java Alberto Ferrari.
Unit à E4 Applet. Obiettivi Saper progettare e realizzare Applet Java allinterno di pagine HTML Comprendere le interazioni tra il browser e lapplet Saper.
Costruttori e Distruttori
Recupero debito quarto anno Primo incontro
Applet Java.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
PHP.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Sistema di gestione flussi documentali
Java Enterprise Edition (JEE)
Java: programmazione concorrente con condivisione di memoria
Mantenimento dello stato Laboratorio Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Laboratorio di Progettazione Web Introduzione AA 2009/2010 Chiara Renso ISTI - CNR -
Connessione con MySQL.
Usare Apache Axis.
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
REST Il paradigma REST è basato su un protocollo di comunicazione stateless, client-server, chacheable e scalabile, tipicamente HTTP (ma non necessariamente,
Applet Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.
Analisi dettagliata e design B. Pernici M.G. Fugini AA
UNIVERSITÀ DI PERUGIA DIPARTIMENTO DI MATEMATICA E INFORMATICA Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della.
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II FACOLTA’ DI SCIENZE MM.FF.NN CORSO DI LAUREA MAGISTRALE DI INFORMATICA JAVA MEDIA FRAMEWORK Introduzione.
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 1 Il package java.awt Gestione dellI/O orientato alla grafica: le finestre Sviluppo di interfacce.
Un framework per il pattern MVC
Approfondimento delle classi
APPLICAZIONI WEB In questo corso impareremo a scrivere un'applicazione web (WA) Marco Barbato - Corso di Applicazioni Web – A.A
Elaborazione di Franco Grivet Chin
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Web Part e controlli di login Elaborazione di Franco Grivet Chin.
Struts. Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache.
Corso Java/J2EE per PM/software architect Struts 2
Introduzione ad ASP.net
Corso Framework Struts (1) 2
Struts. Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache.
Architettura Java/J2EE
Distributed File System Service Dario Agostinone.
Ing. Enrico Lecchini BetaTre S.r.l.
Cosa è una applicazione distribuita?
Basi di Dati e Sistemi Informativi
Sistemi Informativi sul Web
Basi di Dati e Sistemi Informativi
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di.
Servlet e Java Server Pages
Java Enterprise Edition
INTRODUZIONE A JAVASCRIPT
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
Ingresso e uscita in Java F. Bombi 10 ottobre 2002.
Laboratorio di Servizi Web - servlet - Ardissono 1 Java Servlet API package javax.servlet: include classi e interfacce di gestione di servlet indipendenti.
Introduzione a Javascript
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Analisi dettagliata e design
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Laboratorio di Servizi Web - servlet - Ardissono 1 Chiarimenti su Servlet Note aggiuntive su architettura di applicazione web che usa Servlet per gestire.
Progetto di Ingegneria del Web Anno Accademico 2007/2008 Stefano Pigiani Bruno Ricci Marco Ruzzon.
Relatore: Prof. Ing. Stefano SalsanoLaureando: Flaminio Antonucci.
TW Servlet Nicola Gessa. TW Nicola Gessa Introduzione alle servlet n Le servlet sono oggetti java che vengono caricati ed eseguiti dal web server all’interno.
10/10/20021 Ingresso e uscita in Java F. Bombi 10 ottobre 2002.
Tecnologie lato Server: i Server Web © 2005 Stefano Clemente I lucidi sono in parte realizzati con materiale tratto dal libro di testo adottato tradotto.
Eprogram informatica V anno.
Architetture software
1 Corso di Ingegneria del Web e Applicazioni A A Domenico Rosaci 20 – Web Applications – Servlet e JSP.
Eprogram informatica V anno. Programmare in rete.
Monitoring applicativo SaaS Tutorial 30/09/2015. Finalità Il monitoraggio applicativo per verificare, quantificare e controllare l’automazione introdotta.
Gestire i dati: download e salvataggio. L’importanza dei dati La quasi totalità delle applicazioni hala necessità di gestire varie funzionalità relative.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

Corso Java/J2EE per PM/software architect Servlet Elaborazione di Franco Grivet Chin Data 16/06/2009 Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

1 – Servlet introduzione Una Servlet è una classe scritta in Java usata per estendere le capacità di un server che usa applicazioni con un modello richiesta- risposta, come un web server Servlets sono un efficace sostituto delle CGI. Forniscono la possibilità di generare documenti dinamici facili da scrivere e veloci in esecuzione. Servlets risolvono anche il problema di avere a che fare con API server side specifiche di una piattaforma: sono implementate con le Java Servlet API, una estensione Java standard. Richiemare una servlet da client http://machine-name:port/servlet/servlet-name http://localhost:8080/servlet/bookdetails?bookId=203 Normalmente la servlet è mappata con un nome logico Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

2 Servlet e versioni Disponibili da jdk 1.2 Non fanno parte del jdk core Dalla versione 2.2. Fanno parte della distribuzion J2EE Versioni 1.0 (obsoleta) 2.0 –2.6 Attenzione a controllare che la versione utilizzata in sviluppo sia poi uguale a quella utilizzata in produzione Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

3 Livello logico delle servlet Costituiscono assieme alle JSP il livello web della piattaforma J2EE Livello web responsabile di: - generazione dei contenuti per i client (varie forme di markup o anche file binari - presentazione al client web dell’interfaccia utente - presentazione e gestione della sequenza delle schermate - intermediari fra front-end e componenti di livello business - mantenimento dello stato delle sessioni utente -autenticazione egli utenti -support dei client attuali e futuri Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

3 Esecuzione delle servlet e package Le servlet vengono gestite da un container che si occupa del loro ciclo di vita La servlet può chiaramente accedere a tutte le risorse del server Il package javax.servlet contiene l’interfaccia Servlet e le classi che la implementano e classi di servizio come ServletRequest, ServletResponse, ServletConfig,etc. Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

3 Architettura delle Servlet Il package javax.servlet fornisce le interfacce e le classi per scrivere servlets. L’interfaccia di partenza è l’interfaccia Servlet. Tutte le servlets implementano questa interfaccia, sia direttamente o, più comunemente, estendendo una classe che a implementa come HttpServlet Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

3 Ciclo di vita delle servlet Caricamento/instanziazione al momento della prima richiesta http da parte di un client o al momento dell’avvio del servizio Inizializzazione. Se si vuole occorre ridefinire il metodo init(), in questa fase la servlet può caricare dati persistenti memorizzati nel file di config del server Caricamento instanziazione Inizializzazione init() Attesa di richiesta service() Garbage collector finalize() Distruzione destroy() Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

3 Ciclo di vita della servlet - Init Solo la priva volta che una servlet viene richiamata  viene instanziata (il container fa la new() )  viene invocato dal container il metodo init() Per inizializzare una servlet in modo specifico si fa un override del metodo init, chè ha due differenti implemantazioni in base alla versione API che usiamo: public void init(ServletConfig config) version 2.0 public void init() version 2.1.   Per la verione 2.0 conviene sempre iniziare il metodo con super.init() affinchè venga richiamato l’init della classe padre. Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

3 Ciclo di vita della servlet - Service Il metodo service viene sempre invocato dal container quando viene richiamata la servlet public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException Service prende come parametri  un oggetto della classe HttpRequest, che rappresenta la richiesta inviata dal client  un oggetto della classe HttpResponse per inviare dati al client. Se service non viene ridefinito la servlet eredita il service di HttpServlet che richiama un metodo interno alla servlet in base al tipo di metodo http con cui la servlet viene invocata protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException doPost(..) doPut(..) doHead(..) doDelete(..) doOption(..) Quindi in genere si ridefiniscono i metodi sopra Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

HttpServletRequest e HttpServletResponse Quando una servlet riceve una chiamata dal client, riceve due oggetti: HttpServletRequest, che gestisce la comunicazione dal client al server. Contiene le informazioni relative all’header http e i parametri inviati   HttpServletResponse , che gestisce la comunicazione dal server al client. Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

5 HttpServletRequest HttpServletRequest permette alla servlet di accedere a : Informazioni come i parametri passati dal client, il tipo di protocollo usato dal client, il nome dell’host che ha fatto la richiesta e il server che la riceve. un input stream, ServletInputStream (getInputStream()) oppure un BufferedReader (getReader()). La servlet usa lo stream in input per ricevere i dati dal client che usa un protocollo come HTTP e metodi come GET,POST o PUT. Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

6 Metodi principali di HttpServletRequest Metodi comuni getContentType(),getServerName(), getServerPort(),etc Recuperare dati testuali inviati String getQueryString() Enumeration getParameterNames() String getParameter(String name) String[] getParameterValues(String name) (per le checkbox) Recuperare dati non testuali (con post, delete, put) getReader() che restituisce un BufferedReader getInputStream() che restituisce un ServletInputStream per dati in formato binario Metodi per recuperare percorsi HttpServletRequest.getRealPath(String path) // depr. Da 2.1 ServletContext.getRealPath(String path) Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

6 HttpServletResponse HttpServletResponse fornisce alla servlet i metodi per rispondere al client: Consente di impostare il tipo di contentType e il MIME (metodi setContentType e setHeader) Fornisce un output stream, ServletOutputStream (getOutputStream) usato per inviare dati in forma testuale, e uno scrittore Writer(getWriter()) usato per inviare dati in forma binaria. Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

6 Metodi principali di HttpServletResponse Metodi comuni res.setContentType("text/html"); res.setHeader("Pragma", "no-cache"); // forza il browser a non memorizzare in cache Redirezionamento Public void sendRedirect(String location) throws IOException permette di redirigere il client verso altro url. Eventuali dati memorizzati nel buffer vengono cancellati Inviare dati non testuali (con post, delete, put) getWriter() che restituisce un oggetto scrittore PrintWriter getOutputStream() che restituisce un ServletOutputStream per dati in formato binario Dalla versione 2.2 sono stati aggiunti metodi per una gestione migliore del buffering getBufferSize // restituisce la dimensione del buffer setBufferSize // imposta la dim del buffer isCommitted // booleano che dice se sono stati inviati dati al client flushBuffer // invio immediato dei dati reset() // cancellazione del buffer Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

6 Il ServletContext ( application scope) Rappresenta l’ambiente nel quale la servlet viene eseguita. Può essere utilizzato come repository comuni di dati a cui tutte le le servlet ( e le jsp) di qualsiasi session debbano accedere ServletContext application= getServletContext(); Metodi comuni public void setAttribute(String name, Object o) public Object getAttribute(String name) public Enumeration getAttributeNames() public void removeAttribute(String name) Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

6 La classe RequestDispatcher Possibilità di propagare richieste e risposte. Una servlet può: Inoltrare una richiesta a un altro componente o altra servlet Includere nella propria risposta il risultato dell’esecuzione di un’altra servlet ServletContext application= getServletContext(); RequestDispatcher disp=application.getRequestDispatcher(String path) ( anche request.getRequestDispatcher(String path) Il reference ottenuto permette di inoltrare la request direttamente all’oggetto identificato dal path passato come parametro. La RequestDispatcher fornisce i due metodi public void forward(ServletRequest request, ServletResponse response) throws ServletException, IOException public void include(ServletRequest request, ServletResponse response) throws ServletException, IOException NOTA:Il forward va fatto prima di ottenere lo stream per inviare i dati al client Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

6 Gestione della sessione Le servlet forniscono un’api per gestire la sessione Le sessioni sono rappresentate dall’oggetto HttpSession a cui si accede con il metodo getSession dell’oggetto request HttpSession session=request.getSession(); session.setAttribute(“utente”, ut); Ogni sessione ha un timeout determinato all’interno del file web.xmlche può oppure essere gestito con i metodi[get/set]MaxInactiveInterval Si può usare il metodo invalidate per rimuovere una sessione o il metodo removeAttribute per rimuovere un attributo session.invalidate(); // rimuove tutti gli attributi di sessione Session.removeAttribute (“utente”); // rimuove solo l’utente Operazioni svolti su una sessione generano degli eventi che possono essere gestiti dal Listener opportuno. Ad esempio l’aggiunta o la rimozione di un oggetto ad una sessione può essere catturato implementando l’interfaccia javax.http.HttpSessionBindingListener Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

Cookie I cookie sono dei file di testo che vengono memorizzati sul client e possono essere utilizzati per emorizzare delle informazioni (non sensibili) sulla macchina dell’utente finale (vengono anche usati per implementare la sessione) Creare a Cookie Cookie getBook = new Cookie("Buy", bookId); Dove “Buy” è il nome del cookie e bookId è il value entrambi stringhe non sono oggetti Impostare attributi dei Cookie getBook.setComment("User wants to buy"); commento del cookie getBook.setValue(“Attribute”) modifico il value Cancellare un cookie thisCookie.setMaxAge(0); con 0 lo cancello Inviare un Cookie response.addCookie(getBook); Recuperare Cookies Cookie[] cookies = request.getCookies(); lo spedisco sulla macchina del client Recuperare il valore di un Cookie thisCookie.getValue(). Devo gestire la collation NOTA: I cookie possono essere usati solo per memorizzare stringhe Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

6 Listener Si possono definire delle classi listener (che implementano le relative interfacce) per gestire gli eventi che possono verificarsi in una applicazione web sui vari contesti Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

6 Classi listener Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

www.consorzioformaweb.it Titolo Presentazione / Data / Confidenziale / Elaborazione di ...