Google
[IT] Jakarta-Tomcat: gestire i codici di errore del server (400, 401, 404, ecc.)

Jakarta-Tomcat: gestire i codici di errore del server (400, 401, 404, ecc.)


Puo' capitare che l'applicazione web vada, ma non si riescano a catturare errori come "Documento non trovato" e simili.
Con Apache, basta inserire nel file di configurazione la riga (ad esempio)

  ErrorDocument 404 http://www.dominio.com/unapagina.html

Con Tomcat puo' essere fatto qualcosa di analogo. Basta modificare il file

  web.xml

posto nella directory WEB-INF dell'applicazione.
I tag del caso sono "error-page" e "error-code". Rispettivamente, il primo indica che stiamo definendo una pagina di errore, generalmente diversa da quella standard, mentre il secondo indica il codice di errore per cui la pagina viene definita. Conviene sempre definire un'unica pagina dinamica, che cambia aspetto a seconda dell'errore catturato.
Vediamone subito un esempio attraverso uno spezzone di /WEB-INF/web.xml
  <?xml version="1.0" encoding="ISO-8859-1"?>

  <!DOCTYPE web-app
      PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
      "http://java.sun.com/dtd/web-app_2_3.dtd">

  <web-app>

     <error-page>
        <error-code>400</error-code>
        <location>/error.jsp</location>
     </error-page> 

     <error-page>
        <error-code>401</error-code>
        <location>/error.jsp</location>
     </error-page> 
I due blocchi visti servono a catturare l'errore 400 e l'errore 401. La pagina di errore viene specificata nella sezione "location". In questo caso ho usato sempre la stessa pagina, ma vale sempre il discorso della creazione di una pagina dinamica che accetti, per esempio, il codice di errore ("/error.jsp?cod=400").
Alcuni dei codici piu' interessanti sono:
  • 400 Bad Request
  • 401 Authorization Required
  • 403 Forbidden
  • 404 Not Found
  • 405 Method Not Allowed
  • 407 Proxy Authentication Required
  • 408 Request Timed Out
  • 414 Request URI Too Long
  • 415 Unsupported Media Type
  • 500 Internal Server Error
  • 501 Not Implemented
  • 503 Service Unavailable

Home Giansante Gabriele (c) 1999-2006