Elaborazione di Franco Grivet Chin Corso Java/J2EE JSP Elaborazione di Franco Grivet Chin Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
1 – JSP introduzione Una pagina JSP e un documento testuale composta da dati template statici e da elementi JSP che creano dinamicamente i contenuti Nel design pattern MVC (Model View Controller) le JSP ricoprono il ruolo di view (viste) La pagina JSP viene tradotta nella equivalente Servlet e poi compilata (non viene interpretata) Gli elementi JSP e il codice Java sono racchiusi fra degli speciali delimitatori <% e %> JSP 1.0 uso di scriplet (blocchi di codici java) e java beans, JSP 2.0 uso di tag libraries e Expression Language Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
2 Ciclo di vita delle JSP La Jsp viene completamente tradotta in una classe che estende HttpServlet La servlet così generata viene compilata La servlet generata viene instanziata e segue lo stesso ciclo di vita della servlet Le servlet JSP vengono inizializzate con il metodo jspInit e rimosse con jspDestroy (definiti nell’interfaccia javax.servlet.jsp) Le JSp eseguono i loro compiti tramite il metodo _jspService Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
3 Elementi delle pagine JSP Elementi JSP istruzioni per il container JSP che indicano quale codice generare Tre tipi fondamentali di elementi JSP Elementi script Espressioni <%= …. %> scriplet <% ….%> dichiarazioni) <%! ……%> Direttive <%@diretttiva attributo=“valore”...%> Azioni <jsp:azione attributo=“valore” /> Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
3 Elementi di script Definiscono codice di script contenuto direttamente nella pagina JSP Tre tipi di elementi: dichiarazioni, espressioni e scriplet Dichiarazione <%! ….. %> il codice (java) viene inserito nel body della servlet generata fuori dal metodo service. Posso anche inserire un metodo Espressione <%= ….. %> l’espressione è valutata e messa in output (variabili che voglio stampare a video) Scriplet <% ….. %> il codice (java) viene inserito nel metodo service della servlet Commenti <%-- commento--%> Oggetti predefiniti: sia nelle espressioni che negli scriplet sono già disponibili un insieme di oggetti predefiniti disponibili generati dinamicamente nel processo di traduzione (request, response, out, session, application) Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
3 Jsp : direttive DIRETTIVE: forniscono informazioni al container JSP che vengono elaborate durante la fase di traduzione da JSP a Servlet Forma generale <%@ nome-direttiva [attributo=“valore” attributo=“valore”..]%> Direttiva page Specifica gli attributi della pagina JSP <%@page [attributo=“valore” attributo=“valore”..]%> Attributi comunemente usati Info,import,contentType, pageEncoding,language,isScriptingEnabled(true/false), extends, session (true /false), buffer (buffer di output), autoflush (true o false), isThreadSafe (true o false), isErrorPage (true o false), errorPage(URL) Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
3 JSP: Esempi di direttive Import: <%@page import=“java.io.*,java.text.*,java.util.*”%> Sessione:Di default la sessione è attiva in ogni pagina JSP <%@page session=“false”%> Inclusione:Per inserire contenuti di altre pagine direttamente nell’output della pagina corrente. Viene processata durante la traduzione (testo incluso nella pagina) <%@ include file=“urlrelativo”%> Si può utilizzare anche l’azione jsp:include con l’attributo page, nel qual caso viene processato durante l’esecuzione (request mandata al file incluso se dinamica e risultato incluso nella response) <jsp: include page=“urlrelativo”/> Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
3 JSP: Esempi di direttive Inclusione di librerie di tag:dichiara le librerie di marcatori usate nella pagina, composte da un file XML(TLD),descrittore della libreria di marcatori, e dai vari file di marcatori e/o classi Java che implementano le azioni dei marcatori <%@ taglib (uri=“tagLibraryURI” ! Tagdir=“tagDir”) prefix=“tagPrefix”%> Esempio <%@ taglib uri=“http://web3Dweb.com/tags” prefix=“web3Dweb”%> <web3Dweb:fetchMediaFile>Lord of the rings </web3Dweb:fetchMediaFile> Esistono librerie predefinite come JSLT Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
3 JSP:azioni Le azioni sono elementi JSP che possono essere utilizzati all’interno di una pagina per effettuare delle operazioni su oggetti impliciti e non Sintassi xml-like <marcatore attributo1=“val”….>body </marcatore> oppure <marcatore attributo1=“val”…./> ESEMPIO <jsp:include page=“url” flush=“true/false”> <jsp:forward page=“url”> <jsp:param nome=“paramName” value=“paramValue”> (utilizzata solo nelle azioni include, forward) Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
3 Traduzione da JSP a Servlet Durante la traduzione da JSP a Servlet i vari elementi sono tradotti in modo differente - le parti statiche (HTML) sono inserite nel metodo _jspService come delle out.println(..html..) - gli scriplet e le espressioni sono inseriti nella classe servlet generata nel metodo _jspService - le dichiarazioni sono inseriti nella classe servlet generata fuori dall metodo _jspService - le direttive sono usate per controllare come il container traduce ed esegue la pagina JSP e possono essere inserite in vari punti - jsp[include/forward] sono tradotte in chiamate alle API servlet (RequestDispatcher) - tag personalizzati sono sono tradotti in chiamate per il gestore di tag Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
3 Traduzione da JSP a Servlet Se si verifica un errore durante la traduzione o la compilazione viene generata una JasperException e un messaggio con la pagina JSP che ha generato l’errore e la linea dell’errore Dopo che la pagina è stata tradotta e compilata la servlet generata segue il ciclo di vita delle servlet -se non esiste un’istanza della servlet il container a)carica la classe della servlet b)Instanzia un’istanza della classe servlet c) Inizializza la servlet chiamando il metodo jspInit - Il container chiama il metodo _jspService passando gli oggetti request e response - se il container deve rimuovere la servlet chiama il metodo jspDestroy Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
Expression Language Una nuova caratteristica di JSP 2.0 è il supporto per un Expression Language (EL) che permette di accedere facilmente ai dati di un JavaBeans ${name} stampa il valore della variabile name dall’ambito più basso al più alto Esiste un interprete di JSP Expression Gli EL possono essere usati nel testo statico o combinati con i tag standard o personalizzati <c:if test=“${bean1.a<3}”> … </c:if> Ricerca degli attributi:una variabile che appare in un’espressione (es. ${prodotto}) viene cercata nello scope di pagina, request, sessione e applicazione e ne restituisce il valore. Se la variabile non viene trovata viene restituito null Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
6 Expression Language Le expression language possono accedere a oggetti impliciti - pageContext: contesto della pagina JSP che permette di accedere a -servletContext -session -request -response Altri oggetti impliciti sono: -param: per assegnare un parametro della request a un valore -paramValues: per assegnare un parametro della request a un array di valori -cookie: recuperare un cookie -initParam: per assegnare un parametro dell’inizializzazione del contesto a un valore Oggetti per accedere aa attributi di scope specifico: -pageScope,requestScope,sessionScope,applicationScope <%= request.getParameter(“nome”)%> ${param.nome} Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
6 Expression language Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
6 Expression language Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
Tag Libraries:JSTL Java Server Pages Standard Tag Libraries Permette di utilizzare un insieme standard di TAG (non tag html ma in fase di traduzione vengono trasformati in codice java) JSTL contiene tag iteratori e condizionali,tag per manipolare XML, tag per internazionalizzazione,tag per accedere a database con SQL e tag per funzioni Per utilizzare la JSTL occorre utilizzare la direttiva taglib <%@ taglib uri="http://java.sun.com/jsp/jstl/core“ prefix="c" %> nella pagine jsp L’attributo prefix è legato al tipo di funzioni da utilizzare Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
6 JSTL Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
6 JSTL Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
www.consorzioformaweb.it Titolo Presentazione / Data / Confidenziale / Elaborazione di ...