Come per tutti
i linguaggi di scripting server side (e non solo), anche nella creazione delle JSP abbiamo la
possibilità gestire i comportamenti e gli output che normalmente non dovrebbero avere luogo, le cosiddette
"exceptions", attraverso componenti built-in forniti dal linguaggio stesso.
Nella maggior parte
dei linguaggi, gli errori vengono gestiti attraverso la visualizzazione di una error page recante la notifica dei
malfunzionamenti ed eventuali informazioni che possano portare alla loro soluzione.
Facciamo un breve esempio,
riprendiamo lo script utilizzato per descrivere il ciclo while nel capitolo 9 di questa guida e modifichiamolo
eliminando il primo delimitatore "<%" dal codice ; eseguendo il nuovo codice tramite il nostro Servlet
Engine otterremo certamente una notifica simile a questa:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error ()
that prevented it from fulfilling this
request.
exception
org.apache.jasper.JasperException:
Unable to compile class for JSP
An error occurred
at line: 2 in the jsp file: /while2.jsp
Generated servlet error:
valore cannot be resolved
An error occurred
at line: 2 in the jsp file: /while2.jsp
Generated servlet error:
valore cannot be resolved
An error occurred
at line: 2 in the jsp file: /while2.jsp
Generated servlet error:
valore cannot be resolved
(................)
note The full stack trace of the root cause
is available in the Apache Tomcat/5.5.9
logs.
Apache Tomcat/5.5.9
Eliminando il primo delimitatore, abbiamo "corrotto" la parte di codice
in cui viene assegnato un valore alla variabile "valore", Tomcat ci invia infatti un messaggio molto chiaro "valore
cannot be resolved".
Questi "Exception reports" sono molto utili in fase di sviluppo per venire
velocemente a capo degli errori; in fase di produzione è invece consigliabile (anche per una semplice questione
formale) non mostrare questi "ineleganti" output agli utenti.
Sarà quindi buona norma creare una
errorpage personalizzata da richiamare nel caso in cui dovessero verificarsi delle Exceptions. Se decidessimo
di chiamare la nostra pagina di errore "errore.jsp", potremo indicarla al Servlet Engine con una semplice stringa come
questa:
<%@ page errorPage="errore.jsp" %>
Per esempio, potremo creare una errorpage
"errore.jsp" semplicissima contenente questo codice:
<h1>Errore nell'esecuzione della JSP</h1>
Con un po di fantasia la grafica risulterà certamente pił piacevole, ma per ora ci basti osservare l'efficacia
del risultato. Inseriamo la pagina appena creata nella root del Servlet Engine e passiamo alla seconda parte
del nostro esempio.
Creeremo un piccolo script in cui cercheremo di passare un valore assurdo e formalmente
errato ad una variabile senza dimenticarci di specificare all'inizio del codice l'opportuno richiamo alla pagina di
errore:
<%@ page errorPage="errore.jsp" %>
<%
int valore = valido/valido;
%>
A questo punto basterà eseguire il codice appena digitato dopo averlo salvato in un pagina
".jsp" per visualizzare il risultato desiderato.
Attenzione: Gli articoli su Tomcat presenti in questa sezione sono stati concessi in esclusiva per la pubblicazione a Mrwebmaster.it; ne è vietata la riproduzione, anche parziale,
senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it. |