1.使用exception隐式对象创建 异常处理页面,能查看异常发生时的异常信息。 至少需要创建2个页面,且需分别用到page指令中的isErrorPage、errorPage等属性。
时间: 2024-11-25 14:21:00 浏览: 21
在Web应用中,利用JSP (JavaServer Pages) 和 Java 的异常处理机制,我们可以创建专门用于展示异常情况的页面,以便用户了解发生了什么样的错误。这里以Spring MVC为例,你可以创建两个相关的页面:
1. **异常捕获页面** (`error.jsp` 或 `error.html`):
使用`<%@ page isErrorPage="true" %>` 这个`page`指令,标记该页作为默认的错误处理页面。当未明确指定其他自定义异常页面时,服务器会自动将所有未被捕获的异常转发到这里。在这个页面上,你可以显示通用的错误消息以及堆栈跟踪,帮助开发者诊断问题。
```jsp
<%@ page isErrorPage="true" contentType="text/html; charset=UTF-8" language="java" %>
<html>
<head>
<title>系统错误</title>
</head>
<body>
<h1 style="color:red;">发生了一个错误:</h1>
<% if (request.getAttribute("javax.servlet.error.message") != null) { %>
<p>${request.getAttribute("javax.servlet.error.message")}</p>
<% } else { %>
<p>未知错误</p>
<% } %>
<pre><%= new Exception().getMessage() %></pre>
</body>
</html>
```
2. **自定义异常处理页面** (`exceptionHandler.jsp` 或 `customException.jsp`):
如果你想针对特定类型的异常提供定制化的处理,可以在Spring MVC配置文件中定义一个异常处理器,并设置`errorPage`属性指向这个页面。例如,如果想处理`NullPointerException`,你可以这样做:
```xml
<mvc:view-controller path="/" view-name="home" />
<bean id="exceptionHandler" class="com.example.MyExceptionHandler">
<property name="errorPages">
<props>
<prop key="org.springframework.web.HttpRequestMethodNotSupportedException">/exceptionHandler</prop>
<!-- 添加更多自定义异常 -->
</props>
</property>
</bean>
```
然后,在`exceptionHandler.jsp`中,你可以针对不同的异常类型显示不同的信息:
```jsp
<%@ page errorPage="true" contentType="text/html; charset=UTF-8" language="java" %>
<html>
<head>
<title>自定义异常处理 - ${exceptionClass}</title>
</head>
<body>
<h1>Error handling for ${exceptionClass}</h1>
<p>Error message: ${exception.getMessage()}</p>
<!-- 根据具体的异常类型,可以添加更详细的处理逻辑 -->
</body>
</html>
```
阅读全文