带有java servlet的错误控制器
如何使用java中的servlet制作ErrorController,如Zend Framework for PHP中的ErrorController 现在我有了这个带有java servlet的错误控制器,java,servlets,error-handling,Java,Servlets,Error Handling,如何使用java中的servlet制作ErrorController,如Zend Framework for PHP中的ErrorController 现在我有了这个 <servlet> <display-name>ErrorController</display-name> <servlet-name>ErrorController</servlet-name> <servlet-
<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>
误差控制器
误差控制器
project.controller.ErrorController
误差控制器
/错误
java.lang.Exception
/错误
Servlet是否可能有类似的功能?我不确定Zend,但在Java/Servlet中,您可以为特定的错误代码定义错误页面(定义进入WEB-INF/WEB.xml):
404
/404.jsp
500
/500.jsp
位置不一定必须是jsp,然后可以由过滤器进行筛选,将用户带到相关控制器。ErrorController是一个servlet。我想你已经自己回答了你的问题。你同样可以为一个特殊的异常类分配一个错误页。要分配一个来捕获所有可能的抛出,请使用
java.lang.Throwable
。@Sean这当然是一种可能性,但我真的无法想象为什么会有人想通过web.xml处理异常处理。在通用调度器中处理异常并相应地处理它不是更好吗?我倾向于同意。需要记住的一点是,您应该处理来自JSP的错误,这些错误可能在您建立的任何dispatcher框架之外。不过,您可以使用过滤器来处理这个问题。如果我没记错的话,这个机制比J2EE1.1时代更古老,那时一切都将是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>