Corso di Ingegneria del Web A A

Slides:



Advertisements
Presentazioni simili
JPA Overview della tecnologia. Java Persistence Architecture Definita nella JSR-220 EJB 3.0 ( Tentativo di unificare EJB2.1 con.
Advertisements

Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Corso JSF Java Server Faces Mauro Sanfilippo 02/09/2010.
1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Table View. Problemi ricorrenti Una situazione ricorrente è quella in cui il controller potrebbe avere un’altezza superiore a quella dello schermo. In.
Wikispaces, flipped rules in the classroom fiorluis[at]tin.it Luisanna Fiorini
JUG – Ancona Italy AJAX Giovanni Baleani Developer IBS srl.
CORSO elementare su DATABASE Applicativo utilizzato OpenOffice 3.0.
1 Università della Tuscia - Facoltà di Scienze Politiche. Informatica 2 - a.a Prof. Francesco Donini Active Server Pages.
1 Elementi DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
1 ELEMENTI DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
Presentazione della piattaforma e - learning MOODLE a cura di Davide Afretti Bologna, 24 aprile 2013.
+ Common actions Nicolò Sordoni. + Azioni comuni Esistono una serie di azioni di uso comune, che vengono messe a disposizione dalla piattaforma tramite.
PGDay 2009 FSGateway Ing. Torello Querci Resp. Architetture SW - Negens S.r.l. 4 Dicembre 2009, Pisa.
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
Sviluppo applicativo mobile per lettore barcode datalogic
Corso per Webmaster base
Università degli Studi di Modena e Reggio Emilia
Lato Server - OMNIS Web Web Services.
Corso di Ingegneria del Web A A
ODMG.
“Lenuove tecnologie” – Lezione2
VISUAL BASIC.
EasyGraph Dynamic web-based dashboard
Applicazione web basata su web service e web socket
PNSD - Modulo D1A 27 aprile 2017 Piattaforme di e-­learning e cloud:​ installazione e gestione (azione #22) Prof. Rocca Marcello
Commissione Calcolo e Reti
Progettazione di una base di dati relazionale
Il Binding Nicolò Sordoni.
Condividere dati di Excel tramite l'esportazione in un sito di SharePoint
PHP Argomenti avanzati Alberto Ferrari.
Strutture classi e oggetti
INDICO Parte 1 01/07/2018 Francesco Serafini.
I vincoli di integrità Alcuni aspetti della realtà NON possono essere modellati solamente con entità, attributi e relazioni, per esempio i vincoli di integrità.
APACHE2-PHP su Raspberry
Corso di Ingegneria del Web e Applicazioni A A
verifica di abilitazione all’attività di responsabile tecnico
Asynchronous JavaScript and XML
I tag essenziali.
Istruzioni per il nuovo sistema di acquisizione dati
SAS® OnDemand for Academics SAS Studio
Sviluppo di un'applicazione web per l'utilizzo del framework SparkER
Creazione di pagine per Internet
A cura di Ivano Stranieri
Corso di Ingegneria del Web A A Domenico Rosaci 1
Ecco tutte le informazioni Microsoft Notizie di SharePoint
Corso Java Esercizi.
Progetto di Tecnologie Web 2014/2015 THERMOWEB
OBJECT ORIENTED DATABASE
MyMathLab La piattaforma digitale per l’apprendimento personalizzato della matematica Informatica 1 (Informatica Musicale - Informatica per la Comunicazione.
Informatica 2 (Informatica e SSRI) Università degli Studi di Milano
Come utilizzare gli video ed il Rapporto contatti
HYPER TEXT MARK-UP LANGUAGE
SQL per la modifica di basi di dati
Composizioni di classi
ADO Per gestire i database con tecnologia ASP si utilizzano strumenti ADO (ActiveX Data Objects): un'architettura che fornisce oggetti.
Marco Panella Internet e WWW Marco Panella
© 2007 SEI-Società Editrice Internazionale, Apogeo
Free .NET Hosting - somee.com
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
OpenLayers Client di mappe “non solo” WMS
DOM Document Object Model.
8. Altri oggetti JavaScript
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
UNIVERSITÀ DI MODENA E REGGIO EMILIA
Liceo Scientifico «P.S.Mancini» Avellino
Java Costruttore di copia e GetStatus.
Unico 2009 – Esempi per la crisi
Transcript della presentazione:

Corso di Ingegneria del Web A A Corso di Ingegneria del Web A A. 2017-2018 Domenico Rosaci WS e Java Beans Esercitazione N°3

Riprendiamo il WS dell’esercitazione num Riprendiamo il WS dell’esercitazione num. 1, per il quale avevamo inserito il client provaClient() D. Rosaci Ingegneria del Web

Aggiungiamo al progetto una pagina JSP D. Rosaci WS e JSP

Salvare la jsp in WebContent D. Rosaci WS e JSP

Applichiamo il template standard D. Rosaci WS e JSP

Completare la JSP D. Rosaci WS e JSP

Eseguire la JSP D. Rosaci WS e JSP

Considerazioni Di fatto abbiamo collegato il WS ad un client java per poi inserire questo client in una JSP Il web service resta comunque disponibile per essere usato da altri client, anche non basati su java D. Rosaci WS e JSP

Java Beans Le JSP sono estensioni dei servlet Java, di conseguenza consentono di ottenere tutti i risultati di questi ultimi. Lo svantaggio dei Servlet è però rappresentato dalla difficoltà di manutenzione del codice HTML delle applicazioni eccessivamente complesse, in quanto il più delle volte contengono una quantità di codice scriptless eccessiva per un programmatore non esperto in Java. Soluzione a questo problema è rappresentata dai Java Beans, componenti software contenenti una classe Java, che possono venire inclusi in una pagina JSP, permettendo quindi un ottimo incapsulamento del codice, peraltro riutilizzabile. Al Web Designer quindi sarà pressochè invisibile la sezione di codice puro, sostituito da richiami ai metodi delle classi incluse. I Bean sono costituiti esclusivamente da codice Jav, salvati con estensione .java e compilati generando un file di estensione .class. Sarà il file .class che dovrà venire incluse nella pagina JSP. D. Rosaci WS e JSP

jsp:useBean Es. <jsp:useBean id=”nomeBean” scope=”session” class=”classe” /> Permette di associare un’istanza di un JavaBean (associata ad un determinato ID) ad una variabile. In pratica offre la possibilità di associare la classe contenuta nel JavaBean ad un oggetto visibile all’interno della pagina, in modo da poter richiamare i suoi metodi. Attributi: Id: identità dell’istanza dell’oggetto nell’ambito specificato. Scope: ambito dell’oggetto, le opzioni sono: page: gli oggetti con questo ambito sono accessibili solo all’interno della pagina in cui sono stati creati, in pratica possono venire paragonati alle variabili locali di un qualsiasi linguaggio di programmazione, vengono distrutte alla chiusura della pagina e i dati saranno persi; request: gli oggetti con questo ambito sono accessibili esclusivamente nelle pagine che elaborano la stessa richiesta di quella in cui è stato creato l’oggetto, quest’ultimo inoltre rimane nell’ambito anche se la richiesta viene inoltrata ad un’altra risorsa; session: gli oggetti in quest’ambito sono accessibili solo alle pagine che elaborano richieste all’interno della stessa sessione di quella in cui l’oggetto è stato creato per poi venire rilasciati alla chiusura della sessione a cui si riferiscono, in pratica restano visibili in tutte le pagine aperte nella stessa istanza (finestra) del Browser, fino alla sua chiusura. Solitamente i bean istanziati in questo modo vengono utilizzati per mantere le informazioni di un utente di un sito; application: gli oggetti definiti in quest’ambito sono accessibili alle pagine che elaborano richieste relative alla stessa applicazione, in pratica sono validi dalla prima richieta di una pagina al server fino al suo shotdown. class: nome della classe che definisce l’implementazione dell’oggetto nomeBean D. Rosaci WS e JSP

jsp:setProperty Permette di impostare il valore di una delle proprietà di un bean. Attributi: name: nome dell’istanza di bean definita in un’azione <jsp:useBean> property: rappresenta la proprietà di cui impostare il valore value: valore assegnato alla proprietà specificata Esempio: <jsp:setProperty name=”nome_bean” property=”prop” value=”v” /> permette di assegnare il valore v alla proprietà prop del bean di nome nome_bean. D. Rosaci WS e JSP

Jsp:getProperty Prende il valore di una proprietà di una data istanza di bean e lo inserisce nell’oggetto out implicito (in pratica lo stampa a video). Attributi: name: nome dell’istanza di bean da cui proviene la proprietà definita da un’azione <jsp:useBean> property: rappresenta la proprietà del bean di cui si vuole ottenere il valore D. Rosaci WS e JSP

Esempio: InfoUtente public class InfoUtente { private String nome = null; private String email = null; private int pagineViste; public InfoUtente() { pagineViste=0; } public aggiornaPV() { pagineViste++; } public int getPagineViste(){ return pagineViste; } public void setNome(String value) { nome = value; } public String getNome() { return nome; } public void setEmail(String value) { email = value; } public String getEmail() { return email; } public String riassunto(){ String riassunto = null; riassunto = "Il nome dell'utente è"+nome+","; riassunto+= "il suo indirizzo e-mail è: "+email; riassunto+= " e ha visitato "+pagineViste+" del sito"; return riassunto; } }//InfoUtente D. Rosaci WS e JSP

Uso del Java Bean nella JSP <html> <head><title>Utilizzo del Bean</title></head> <body> <jsp:useBean id="utente" scope="session" class="InfoUtente"/> <jsp:setProperty name="utente" property="nome" value=“Mario"/> in alternativa usare i metodi pubblici della classe: <% utente.setNome(«mario"); utente.setEmail(«mario@email.it"); %> La lettura dei valori si può fare così: <jsp:getProperty name="utente" property="nome"/> Oppure così: <% out.println(utente.getNome()); out.println(utente.riassunto()); %> D. Rosaci WS e JSP

Altro Es. RubricaStudenti package it.domenicorosaci; class Info{ private String nome; private String cognome; private String email; private String telefono; public String getNome() { return nome; } public String getCognome() {return cognome;} public String getEmail() {return email;} public String getTelefono() {return telefono;} public void setNome(String n) {nome=n;} public void setCognome(String c) {cognome=c;} public void setEmail(String e) {email=e;} public void setTelefono(String t) {telefono=t;} (Aggiungere come nuova classe in file separato nel progetto RubricaStudenti dell’esercitazione WS 2) D. Rosaci WS e JSP

AGGIUNGERE ALLA CLASSE RubricaStudenti public ArrayList<Info> trovaInfo(String matricola) { ArrayList<Info> risultato=new ArrayList<Info>(); Info tmp; try {new com.mysql.jdbc.Driver(); Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/studenti"; Connection con = DriverManager.getConnection(url, "root", "poirot75db"); Statement cmd = con.createStatement(); String query = "SELECT studenti.Nome,studenti.Cognome,recapiti.telefono,recapiti.email FROM recapiti INNER JOIN studenti ON studenti.matricola=recapiti.matricola WHERE matricola="+matricola; ResultSet res = cmd.executeQuery(query); while(res.next()){tmp=new Info(); tmp.setNome(res.getString("Nome")); tmp.setCognome(res.getString("Cognome")); tmp.setTelefono(res.getString("telefono")); tmp.setEmail(res.getString("email")); risultato.add(tmp); } res.close(); cmd.close(); con.close(); catch (Exception e) { System.out.println("errore di connessione: "+e); e.printStackTrace(); return risultato;} D. Rosaci WS e JSP

Scrivere la pagina JSP <%@page import="it.domenicorosaci.RubricaStudenti"%> <%@page import="it.domenicorosaci.Info"%> <%@page import="java.util.ArrayList"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Rubrica Studenti</title> </head> <body> (CONTINUA) D. Rosaci WS e JSP

<% String m=request.getParameter("matricola"); if((m==null)||(m.length()==0)){%> <form action="" > <br>Matricola:<input type= "text" name="matricola"> <br><input type= "submit"> </form> <%}else{ ArrayList<Info> res = RubricaStudenti.trovaInfo(m); if(res!=null) {%> lo studente avente matricola <%=m%> si chiama <%=res.get(0).getNome()%> <%=res.get(0).getCognome()%> <br> recapiti: <%for(int i=0;i<res.size();i++){%> <br>num: <%=i+1%>: <%if(res.get(i).getTelefono()!=null)%> telefono: <%=res.get(i).getTelefono()%> <%if(res.get(i).getEmail()!=null)%> email: <%=res.get(i).getEmail()%> <%} } else%> non esiste uno studente con tale matricola <%}%> </body> </html> D. Rosaci WS e JSP

Considerazioni Stavolta non abbiamo usato alcun WS L’approccio con il Java Beans si è posto come alternativa al WS E’ un approccio che non si presta ad essere usato con altre tecnologie D. Rosaci WS e JSP