Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Home ~ Jsp :: Gestire gli errori con le JSP :: Indice Jsp

Gestire gli errori con le JSP

Categoria: Jsp Inserito il: 31-08-2005 Stampa (25283 click)

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.

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle pił importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
Incapsulazione, ereditarietà e polimorfismo
La programmazione orientata agli oggetti prevede l'esistenza di tre componenti fondamentali che caratterizzano profondamente ogni aspetto di questa metodologia... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti