【问题标题】:Error Controller with java servlets带有 java servlet 的错误控制器
【发布时间】:2010-04-22 20:13:33
【问题描述】:

如何使用 java 中的 servlet 制作一个 ErrorController,如 Zend Framework for PHP 中的 ErrorController?

现在我有了这个

<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 有类似的东西?

【问题讨论】:

  • ErrorController 是一个 servlet。我猜你自己已经回答了你的问题。

标签: java servlets error-handling


【解决方案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,然后可以由过滤器咀嚼,将用户带到相关控制器。

【讨论】:

  • 您同样可以将错误页面分配给特定的异常类。要分配一个来捕获所有可能的 Throwable,请改用 &lt;exception-type&gt;java.lang.Throwable&lt;/exception-type&gt;
  • @Sean 这当然是一种可能性,但我真的不知道为什么会有人想通过 web.xml 处理异常处理。在通用调度程序中处理异常并相应地处理它不是更好吗?
  • 我倾向于同意。要记住的一件事是您应该处理来自 JSP 的错误,这些错误可能在您建立的任何调度程序框架之外。不过,您可以使用Filter 处理它。如果我没记错的话,从 J2EE 1.1 左右的令人兴奋的日子开始,当一切都将是 XML 和声明性的时候,这种机制就更老了!您可以使用其中一个或两个。
猜你喜欢
  • 2016-02-22
  • 1970-01-01
  • 2015-07-19
  • 2014-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-26
相关资源
最近更新 更多