2010-04-22 54 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