This document discusses how podcasting can be used in education. It provides examples such as teachers recording lectures and lessons for students to access online. It also suggests podcasting could be used to share student projects, recordings of musical pieces, instrument lessons, concert videos, and ear training exercises. The document encourages using podcasts and iPods to enhance learning.
The document discusses the topic of wisdom found in the book of James. It contrasts two types of wisdom - one that is "from above" and one that is "earthly, natural, demonic." True wisdom from God is described as pure, peaceable, gentle, reasonable, full of mercy and good fruits, while the other leads to disorder and evil. The document examines different passages in James and Proverbs to understand the source, behavior and motives associated with these two forms of wisdom.
La persona propone iniciar una campaña para limitar el consumo de alcohol a un vaso de cerveza por persona en fiestas y fines de semana para prevenir accidentes por exceso de bebidas, y pide reenviar el mensaje a amigos para apoyar la iniciativa.
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
Ìý
We asked LinkedIn members worldwide about their levels of interest in the latest wave of technology: whether they’re using wearables, and whether they intend to buy self-driving cars and VR headsets as they become available. We asked them too about their attitudes to technology and to the growing role of Artificial Intelligence (AI) in the devices that they use. The answers were fascinating – and in many cases, surprising.
This ºÝºÝߣShare explores the full results of this study, including detailed market-by-market breakdowns of intention levels for each technology – and how attitudes change with age, location and seniority level. If you’re marketing a tech brand – or planning to use VR and wearables to reach a professional audience – then these are insights you won’t want to miss.
Abstract:
* Introduzione a Seam ;
* Ciclo di vita di Seam;
* Component and context;
* Absolute Inversion of Control;
* Rapid Seam development (con esempio di start-up su eclipse o se si preferisce a linea di comando);
* Differenze sostanziali con la versione 3.0 / Ajax and Javascript remoting
ASP.NET MVC è un framework sviluppato da Microsoft che permette di sviluppare applicazioni web utilizzando il pattern Model-View-Controller. Questo pattern, e (in questa sessione) la sua implementazione realizzata da Microsoft, si propone di apportare alcuni benefici: Maggiore controllo del markup della pagina, URL più leggibili Facilità di integrazione con librerie AJAX, chiara separazione dei ruoli/responsabilità tra layer, facilitando i test e la manutenzione dell'applicazione, supporto per test-driven development. Nella sessione andremo in dettaglio nella versione 2 di ASP.NET MVC, e con esempi pratici daremo risposta alle domande più frequenti, e a molte altre. Quando si utilizza ASP.NET MVC? Come si utilizza ASP.NET MVC? Semplifica davvero la manutenzione dell'applicazione? E' realmente testabile? Cosa guadagno ad usare ASP.NET MVC?
jQuery è un framework javascript che permette di semplificare la scrittura di codice javascript, facilitando l'iterazione con gli elementi della pagina (controlli, stili, eventi, animazioni, ...), e permettendo di aumentare la user experience delle applicazioni, riducendone al tempo stesso la complessità di scrittura. Vista la sua diffusione e potenza, è stato anche incluso nei project templete di Visual Studio. In questa sessione vedremo cos'è jQuery, e scopriremo le potenzialità e funzionalità che offre, verificando se il motto "write less do more" sia vero o meno.
Come aggiornare i dati di una tabella relazionale prima di chiavi straniere. Le quattro operazioni fondamentali. CRUD. Visualizzare una lista di righe della tabella relazionale, inserire una nuova riga, ricercare un record conoscendo la sua chiave primaria. Modificare e annullare
Abstract:
* Introduzione a Seam ;
* Ciclo di vita di Seam;
* Component and context;
* Absolute Inversion of Control;
* Rapid Seam development (con esempio di start-up su eclipse o se si preferisce a linea di comando);
* Differenze sostanziali con la versione 3.0 / Ajax and Javascript remoting
ASP.NET MVC è un framework sviluppato da Microsoft che permette di sviluppare applicazioni web utilizzando il pattern Model-View-Controller. Questo pattern, e (in questa sessione) la sua implementazione realizzata da Microsoft, si propone di apportare alcuni benefici: Maggiore controllo del markup della pagina, URL più leggibili Facilità di integrazione con librerie AJAX, chiara separazione dei ruoli/responsabilità tra layer, facilitando i test e la manutenzione dell'applicazione, supporto per test-driven development. Nella sessione andremo in dettaglio nella versione 2 di ASP.NET MVC, e con esempi pratici daremo risposta alle domande più frequenti, e a molte altre. Quando si utilizza ASP.NET MVC? Come si utilizza ASP.NET MVC? Semplifica davvero la manutenzione dell'applicazione? E' realmente testabile? Cosa guadagno ad usare ASP.NET MVC?
jQuery è un framework javascript che permette di semplificare la scrittura di codice javascript, facilitando l'iterazione con gli elementi della pagina (controlli, stili, eventi, animazioni, ...), e permettendo di aumentare la user experience delle applicazioni, riducendone al tempo stesso la complessità di scrittura. Vista la sua diffusione e potenza, è stato anche incluso nei project templete di Visual Studio. In questa sessione vedremo cos'è jQuery, e scopriremo le potenzialità e funzionalità che offre, verificando se il motto "write less do more" sia vero o meno.
Come aggiornare i dati di una tabella relazionale prima di chiavi straniere. Le quattro operazioni fondamentali. CRUD. Visualizzare una lista di righe della tabella relazionale, inserire una nuova riga, ricercare un record conoscendo la sua chiave primaria. Modificare e annullare
1. Jakarta Struts: Processare le richieste con gli Action Objects Struts Versione 1.2 Core Servlets & JSP book: www.coreservlets.com More Servlets & JSP book: www.moreservlets.com Servlet/JSP/Struts/JSF Training: courses.coreservlets.com Traduzione a cura di JavaStaff.com
2. Agenda Flusso di controllo di Struts I sei passi base per l’utilizzo di Struts Per implementare il flusso di controllo Esempi
3. Il flusso di controllo di Struts JSP Form Determina la Action Action Sceglie la pagina JSP JSP richiesta .../SomeForm.jsp Invio form richiesta .../ blah .do invoca esegue un metodo Ritorna condizione Forward verso Ritorna risultato finale struts-config.xml
4. Il flusso di controllo di Struts L’utente richiede un form Per ora utilizziamo il semplice HTML per costruire la form Successivamente utilizzeremo il tag Struts html:form Il form è inviato ad un URL della forma blah .do. Questo indirizzo è mappato ad un Action class nel file di configurazione struts-config.xml Il metodo execute dell’oggetto Action viene invocato Uno degli argomenti è un form bean che è automaticamente creato e le cui proprietà sono popolate automaticamente con i dati che arrivano dal form L’oggetto Action dopo invoca la business logic e la data-access logic, mettendo i risultati in dei bean che vengono salvati in uno scope di request, session o application. L’Action utilizza mapping.findForward per ritornare una condizione, e le condizioni sono mappate nel file struts-config.xml per effettuare il forward verso diverse pagine JSP. Struts ridirige le richieste verso la pagina JSP appropriata La pagina può utilizzare bean:write o l’EL di JSP 2.0 per stampare le proprietà dei bean La pagina può utilizzare bean:message per stampare determinate stringhe
5. I sei passi base per utilizzare Struts Modificare struts-config.xml. Si utilizza WEB-INF/struts-config.xml per: Mappare gli indirizzi in entrata.do verso le classi Action Mappare le condizioni di ritorno della pagine JSP Dichiarare i form beans che devono essere usati. Riavviate il server una volta modificato il file struts-config.xml . Definire un form bean. Questo bean è una classe che estende ActionForm e rappresenterà i dati inviati dall’utente. E’ automaticamente valorizzato quando la form di input viene inviata. La definizione dei bean è rinviata alla prossima lezione.
6. I sei passi base per utilizzare Struts Creare i bean per il risultato. Nell’architettura MVC architecture, il codice relativo alla business-logic e data-access crea i risultati e le pagine JSP li presentano. Per trasferire i risultati da un layer all’altro si utilizzano dei bean dove vengono memorizzati questi valori. Questi bean differiscono dai form bean perchè non hanno bisogno di estendere alcuna classe particolare e rappresentano l’output del processo computazionale, non l’input. I bean verranno discussi nella prossima lezione. Definire una classe Action per gestire le richieste. Il file struts-config.xml definisce le classi Action classes che gestiscono le richieste per differenti URL. Gli oggetti Action hanno bisogno di fare il vero lavoro: invocare la business-logic (e/o data-access-logic), salvare dei risultati in dei bean e definisce il tipo di situazione appropriata in base ai risultati (dati mancanti, errore sul database, categoria di successo 1, categoria di successo 2 etc. etc.). Il file struts-config.xml dopo decide quale pagina JSP deve essere applicata a questa situazione.
7. I sei passi base per utilizzare Struts Creare il form che invoca blah .do. Creare un form di input la cui ACTION corrisponde ad uno degli indirizzi contenuti nel file struts-config.xml. In una lezione successiva si parlerà dei vantaggi dell’utilizzo del tag html:form di Struts per costruire i form di input. Display dei risultati nelle JSP. Visto che Struts è costruito sul pattern MVC, queste pagine JSP dovrebbero evitare elementi di scripting ove possibile. Si può usare il tag bean:write, ma anche l’EL di JSP 2.0 è alternativa possibile. Nella maggior parte dei casi, le pagine JSP hanno senso solo quando la richiesta è inviata attraverso una Action. Se le pagine JSP hanno senso indipendentemente dalla Action, allora queste pagine dovrebbero essere poste in una sottodirectory della Web application e le entry di forward entries nel file struts-config.xml dovrebbero riportare <forward ... redirect="true"/>.
8. Esempio 1: Mapping di un risultato URL http://hostname/StrutsActions/register1.do Action Class RegisterAction1 RegisterAction1 estende Action ed è presente nel package di com.javastaff.strutsaction. Il metodo execute di RegisterAction1 ritorna sempre "success" Pagina dei risultati /WEB-INF/results/confirm.jsp L’URL mostrato sarà sempre register1.do
9. Passo 1A (Modificare struts-config.xml) Mappare gli indirizzi in arrivo .do con delle classi Action In questo caso abbiamo deciso che la classe RegisterAction1 deve gestire le richieste per l’indirizzo register1.do. Per assolvere a questo compito, dobbiamo aggiungere una entry action al tag action-mappings, dove la action deve avere i seguenti attributi. path : il path relativo che deve essere mappato sulla Action, tranne l’estensione .do. Così il path="/register1" si riferisce all’URL http://hostname/webAppName/register1.do. type : il nome completo della classe Action che deve essere invocato per gestire la richiesta. <action-mappings> <!-- .do implied automatically --> <action path="/register1" type="com.javastaff.strutsaction.RegisterAction1"> ... </action> </action-mappings>
10. Passo 1B (Modificare struts-config.xml) Mappare le condizioni di ritorno con delle pagine JSP In questo caso utilizziamo l’elemento forward per dire che la pagina confirm.jsp viene applicata quando il metodo execute di RegisterAction1 ritorna "success", come segue : <forward name="success" path="/WEB-INF/results/confirm.jsp"/> Nota: se lo stesso forward è utilizzato da azioni multiple, è possibile inserirlo in una sezione global-forwards section (prima di action-mappings) invece che metterlo dentro la action. <global-forwards> <forward name="success" path="/WEB-INF/results/confirm.jsp"/> </global-forwards>
11. Passo 1 (Modificare struts-config.xml) – Il file struts-config.xml finale <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config PUBLIC ... > <struts-config> <action-mappings> <action path="/register1" type="com.javastaff.strutsaction.RegisterAction1"> <forward name="success" path="/WEB-INF/results/confirm.jsp"/> </action> </action-mappings> </struts-config>
12. Passo 2 e 3 Definire un form bean. I bean sono rimandati alla prossima lezione, quindi questo step è omesso per il momento. Creare dei result bean. I bean sono rimandati alla prossima lezione, quindi questo step è omesso per il momento.
13. Passo 4 (Definire una classe Action per gestire le richieste) Le sottoclassi Action dovrebbero… essere in un package . In questo caso abbiamo package com.javastaff.strutsaction; Questo significa che il file class dovrebbe andare in web_app /WEB-INF/classes/com/javastaff/strutsaction. Le sottoclassi Action dovrebbero… aggiungere gli import specifici per Struts o qualsiasi altro importo necessario . In questo caso abbiamo import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionForward;
14. Passo 4 (Definire una classe Action per gestire le richieste) Le sottoclassi Action dovrebbero ... estendere Action Le sottoclassi Action dovrebbero ... effettuare l’override del metodo execute In questo caso abbiamo public class RegisterAction1 extends Action { public ActionForward execute (ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ... } }
15. Passo 4 (Definire una classe Action per gestire le richieste) Le sottoclassi Action dovrebbero... Ritornate mapping.findForward . Il metodo execute dovrebbe avere uno o più valori di ritorno. Questi valori corrisponderanno a specifiche pagine JSP definite nelle entry forward del file struts-config.xml. In questo caso ritorniamo semplicemente "success" in ogni situazione. public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { return(mapping.findForward("success")); }
16. Passo 4 (Definire una classe Action per gestire le richieste) – Codice finale package com.javastaff.strutsaction; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionForward; public class RegisterAction1 extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { return mapping.findForward("success"); } }
17. Passo 5 (Creare il form che richiama register1 .do) Abbiamo bisogno di un form HTML che richiama http://hostname/struts-actions/register1.do. <!DOCTYPE ...> <HTML> <HEAD><TITLE>New Account Registration</TITLE></HEAD> <BODY BGCOLOR="#FDF5E6"> <CENTER> <H1>New Account Registration</H1> <FORM ACTION="register1.do" METHOD="POST"> Email address: <INPUT TYPE="TEXT" NAME="email"><BR> Password: <INPUT TYPE="PASSWORD" NAME="password"><BR> <INPUT TYPE="SUBMIT" VALUE="Sign Me Up!"> </FORM> </CENTER> </BODY></HTML>
18. Passo 6 (Display dei risultati nella JSP) In generale, a questo punto possono esserci diverse pagine Ogni pagina può corrispondere ai diversi valori che vengono ritornati dal metodo execute della Action invocata. Nel file struts-config.xml, ogni pagina JSP è dichiarata in una entry forward con la relativa action. In questo semplice caso l’unico valore di ritorno è "success", così /WEB-INF/results/confirm.jsp è usata in tutti i casi. Questa pagina JSP mostrerà un semplice messaggio (come potete vedere nella prossima slide)
19. Passo 6 (Display dei risultati nella JSP) – Codice finale <!DOCTYPE ...> <HTML> <HEAD><TITLE>Success</TITLE></HEAD> <BODY BGCOLOR="#FDF5E6"> <CENTER> <H1>You have registered successfully.</H1> Congratulations </CENTER> </BODY></HTML>
20. Esempio 1: Risultati Il form HTML viene invocato con l’URL http://localhost/StrutsAction/form.html
21. Esempio 1: Risultati Questo form viene riempito ed in seguito inviato L’ ACTION del form è register1.do Questo indirizzo è mappato nel file di configurazione struts-config.xml E’ associato alla classe RegisterAction1, della quale viene invocato il metodo execute. Questo metodo ritorna mapping.findForward Con il valore "success“, definito staticamente Questo valore è mappato in struts-config.xml Gestisce il forward verso /WEB-INF/results/confirm.jsp, Che è il risultato finale mostrato all’utente. Tuttavia visto che la pagina è invocata con RequestDispatcher.forward, e non response.sendRedirect, l’URL mostrato all’utente è register1.do, non confirm.jsp.
23. Esempio 2: Mapping multipli per il risultato URL http://hostname/StrutsAction/register2.do Action Class RegisterAction2. Il metodo execute di RegisterAction2 ritorna "success", "bad-address", o "bad-password" Pagine dei risultati /WEB-INF/results/confirm.jsp, /WEB-INF/results/bad-address.jsp, e /WEB-INF/results/bad-password.jsp Nuova feature di questo esempio L’uso di forward multipli in un elemento action.
24. Passo 1 (Modificare struts-config.xml) Mappare gli indirizzi .do con le classi Action In questo caso utilizziamo RegisterAction2 per gestire le richieste relative a register2.do (come prima, notare che il .do è implicito). Mappare le condizioni ritornate con delle pagine JSP In questo caso utilizziamo degli elementi forward multipli, uno per ogni possibile valore di ritorno del metodo execute di RegisterAction2. Dichiarare tutti i form bean che devono essere usati. I Bean sono rimandati alla prossima lezione quindi per il momento sono omessi.
26. Passi 2 e 3 Definire un form bean. I Bean sono rimandati alla prossima lezione quindi per il momento sono omessi. Creare i bean dei risultati. I Bean sono rimandati alla prossima lezione quindi per il momento sono omessi.
27. Passo 4 (Definire una classe Action per gestire le richieste) Simile al precedente esempio tranne per il fatto che ora inseriamo diverse entry nel mapping.findForward Ritorniamo un "bad-address" se l’email non è presente nel form, se è più piccola di 3 caratteri o se manca il carattere "@". Ritorniamo "bad-password" se la password è mancante o se è più piccola di 6 caratteri. Altrimenti ritorniamo "success". In questo semplice esempio utilizziamo esplicitamente request.getParameter. Nelle lezioni successive vedremo come Struts popola automaticamente un bean a partire dai dati della request HTTP.
28. Passo 4 (Definire una classe Action per gestire le richieste) – Codice finale public class RegisterAction2 extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String email = request.getParameter("email"); String password = request.getParameter("password"); if ((email == null) || (email.trim().length() < 3) || (email.indexOf("@") == -1)) { return(mapping.findForward("bad-address")); } else if ((password == null) || (password.trim().length() < 6)) { return(mapping.findForward("bad-password")); } else { return(mapping.findForward("success")); }}}
29. Passo 5 (Creare il form che invoca blah .do) Abbiamo bisogno di un form che invoca http://hostname/StrutsAction/register2.do. <!DOCTYPE ...> <HTML> <HEAD><TITLE>New Account Registration</TITLE></HEAD> <BODY BGCOLOR="#FDF5E6"> <CENTER> <H1>New Account Registration</H1> <FORM ACTION="register2.do" METHOD="POST"> Email address: <INPUT TYPE="TEXT" NAME="email"><BR> Password: <INPUT TYPE="PASSWORD" NAME="password"><BR> <INPUT TYPE="SUBMIT" VALUE="Sign Me Up!"> </FORM> </CENTER> </BODY></HTML>
30. Passo 6 (Visualizzare i risultati in una JSP) Prima possibile pagina <!DOCTYPE ...> <HTML> <HEAD><TITLE>Illegal Email Address</TITLE></HEAD> <BODY BGCOLOR="#FDF5E6"> <CENTER> <H1>Illegal Email Address</H1> Address must be of the form username@host. Please <A href=“form2.html"> try again</A>. </CENTER> </BODY></HTML>
31. Passo 6 (Visualizzare i risultati in una JSP) Seconda possibile pagina <!DOCTYPE ...> <HTML> <HEAD><TITLE>Illegal Password</TITLE></HEAD> <BODY BGCOLOR="#FDF5E6"> <CENTER> <H1>Illegal Password</H1> Password must contain at least six characters. Please <A href=“form2.html"> try again</A>. </CENTER> </BODY></HTML>
32. Passo 6 (Visualizzare i risultati in una JSP) confirm.jsp già utilizzata <!DOCTYPE ...> <HTML> <HEAD><TITLE>Success</TITLE></HEAD> <BODY BGCOLOR="#FDF5E6"> <CENTER> <H1>You have registered successfully.</H1> Congratulations </CENTER> </BODY></HTML>
37. Combinare condizioni condivise per i vari mapping Idea Se la stessa condizione è mappata sulla stessa pagina JSP in diverse azioni, è possibile muovere questo forward in una sezione global-forwards per evitare inutili ripetizioni Sintassi La sezione global-forwards precede action-mappings Le entry di forward in global-forwards hanno la stessa sintassi e lo stesso comportamento delle entry di forward nelle action Esempio <global-forwards> <forward name="success" path="/WEB-INF/results/confirm.jsp"/> </global-forwards>
39. Combinare condizioni condivise per i vari mapping: nuova configurazione <global-forwards> <forward name="success" path="/WEB-INF/results/confirm.jsp"/> </global-forwards> <action-mappings> <action path="/register1" type="com.javastaff.strutsaction.RegisterAction1"> </action> <action path="/register2" type="com.javastaff.strutsaction.RegisterAction2"> <forward name="bad-address" path="/WEB-INF/results/errorEmail.jsp"/> <forward name="bad-password" path="/WEB-INF/results/errorPassword.jsp"/> </action> ... </action-mappings>
40. Sommario Modificare struts-config.xml Mappare indirizzi blah .do su delle classi che estendono Action Mappare le condizioni di return su delle pagine JSP Dichiarare tutti i form bean che devono essere utilizzati. Definire un form bean Creare un bean dei risultati Definire una classe Action che gestisce le richieste Estendere Action Effettuare l’override di execute() Ritornare mapping.findForward Creare un form che invoca blah .do Mostrare i risultati in una JSP