2010-04-22 4 views
0

Comment faire un ErrorController, comme le ErrorController dans Zend Framework pour PHP, avec des servlets dans java?Contrôleur d'erreur avec les servlets Java

Maintenant, j'ai ce

<servlet> 
     <display-name>ErrorController</display-name> 
     <servlet-name>ErrorController</servlet-name> 
     <servlet-class>project.controller.ErrorController</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>ErrorController</servlet-name> 
     <url-pattern>/error</url-pattern> 
    </servlet-mapping> 

    <error-page> 
     <exception-type>java.lang.Exception</exception-type> 
     <location>/error</location> 
    </error-page> 

Est-il possible d'avoir quelque chose de similaire avec les servlets?

+1

ErrorController EST une servlet. Je suppose que vous avez répondu à votre question par vous-même. –

Répondre

1

Je ne suis pas sûr de Zend, mais en Java/Servlet vous pouvez définir des pages d'erreur pour les codes d'erreur spécifiques (définition va dans WEB-INF/web.xml):

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

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

L'emplacement est pas nécessairement doit être jsp et peut ensuite être mastiqué par un filtre qui conduirait l'utilisateur à un contrôleur pertinent.

+0

Vous pouvez également affecter une page d'erreur à une classe Exception particulière. Pour en assigner une à tous les Throwables possibles, utilisez plutôt java.lang.Throwable '. –

+0

@Sean c'est bien sûr une possibilité, mais je n'imagine pas vraiment pourquoi quelqu'un voudrait s'occuper de la gestion des exceptions via web.xml. Ne vaut-il pas mieux gérer l'exception dans un répartiteur générique et l'attaquer en conséquence? – mindas

+0

J'ai tendance à être d'accord. Une chose à retenir est que vous devez gérer les erreurs des JSP, qui peuvent être en dehors de tout cadre de dispatcher que vous établissez. Vous pouvez gérer cela avec un 'Filter' cependant. Ce mécanisme est plus ancien, si je me souviens bien, des jours grisants de J2EE 1.1 ou alors quand tout allait être XML et déclaratif! Vous pouvez utiliser l'un ou les deux. –

Questions connexes