servlet 异常处理 浅浅的花香味﹌ 2022-05-24 09:06 99阅读 0赞 原地址:[http://jspengxue.iteye.com/blog/48364][http_jspengxue.iteye.com_blog_48364] Servlet异常处理 1. 声明异常处理 声明两种错误处理:HTTP错误代码的处理 和 指定程序中产生的java异常的处理。 在web.xml文件中声明对各种异常的处理方法。 元素结构: <error-page> |\_\_\_\_<error-code> or <exception-type> | |\_\_\_\_<location> <error-code>: 制定错误代码。 <exception-type>: 制定java异常类的完整限定名。 <location>: 给出用于响应HTTP错误代码或者Java异常的资源的路径。 HTTP异常的处理 利用web.xml静态设置错误响应 Java代码 ![收藏代码][icon_star.png] 1. <?xml version="1.0" encoding="ISO-8859-1"?> 2. <web-app xmlns="http://java.sun.com/xml/ns/j2ee" 3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4. xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app\_2\_4.xsd" 5. version="2.4"> 6. 7. <display-name>Test My Servlet</display-name> 8. <description> 9. Test My Servlet 10. </description> 11. 12. <error-page> 13. <error-code>404</error-code> 14. <location>/myjsp/error.html</location> 15. </error-page> 16. </web-app> 我测试发现不行! 我们也可以将error.html改为一个Servlet类来处理。 Servlet容器在请求对象中设置的属性 属性名字 属性类型 属性说明 Java代码 ![收藏代码][icon_star.png] 1. javax.servlet.error.status\_code: Integer HTTP协议的状态代码 2. javax.servlet.error.exception\_type: Class 未捕获异常的Class类的对象 3. javax.servlet.error.message: String 传递给sendError()方法的消息 4. javax.servlet.error.exception: Throwable 调用错误页面的未捕获异常 5. javax.servlet.error.request\_uri: String 当前请求的URI 6. javax.servlet.error.servlet\_name: String 导致错误页面被调用的Servlet的名字 java程序中产生的异常处理 将上面web.xml的<error-code>改为<exception-type>后,输入类似: <exception-type>java.io.FileNotFoundException</exception-type> 当文件找不到时捕获这个异常并通过<location>去调用处理。 最后,HttpServletResponse里面有HTTP协议所定义的web响应数字。 利用ServletRequest 的getRequestDispatcher()得到getRequestDispatcher对象, 调用forward()方法去调用另一个Servlet类 [http_jspengxue.iteye.com_blog_48364]: http://jspengxue.iteye.com/blog/48364 [icon_star.png]: /images/20220524/fcbe63f7a6cc42cfb4e214658ce04df0.png
还没有评论,来说两句吧...