2010-04-22 46 views
0

如何使用Java中的servlets使错误控制器,如Zend Framework for PHP中的ErrorController?错误控制器与Java Servlets

现在我有这个

<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> 

是否有可能有servlet的类似的东西?

+1

ErrorController是一个servlet。我想你已经为自己回答了你的问题。 – 2010-04-22 20:27:41

回答

1

我不知道Zend的,但在Java/Servlet的,您可以定义特定的错误代码的错误页面(定义进入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> 

的位置不一定需要是jsp,然后可以通过将用户带到相关控制器的过滤器来咀嚼。

+0

您也可以为特定的Exception类指定一个错误页面。要指派一个捕获所有可能的Throwable,可以使用' java.lang.Throwable'来代替。 – 2010-04-22 22:32:17

+0

@Sean这当然是一种可能性,但我真的不能想象为什么会有人想通过web.xml处理异常处理。处理通用调度程序中的异常并相应地解决它是不是更好? – mindas 2010-04-23 08:51:19

+0

我倾向于同意。有一点要记住,你应该处理来自JSP的错误,这些错误可能在你建立的任何调度器框架之外。你可以用'Filter'处理。如果我记得正确的话,这种机制比较老旧,从J2EE 1.1左右的高潮时刻开始,所有事情都将是XML和声明式的!您可以使用其中一种或两种。 – 2010-04-23 17:20:32