JSP 教程 之 JSP 异常处理 4

简介: JSP异常处理涉及检查型异常(如文件未找到)、运行时异常及错误。当异常发生时,可通过`<%@page errorPage="..."%>`指令指定处理页面,如`ShowError.jsp`。在错误页面中,使用`<%@page isErrorPage="true"%>`获取异常信息并显示堆栈跟踪。访问引发异常的`main.jsp`会展示定制的错误信息和堆栈跟踪。

JSP 教程 之 JSP 异常处理 4

JSP 异常处理

当编写JSP程序的时候,程序员可能会遗漏一些BUG,这些BUG可能会出现在程序的任何地方。JSP代码中通常有以下几类异常:

检查型异常:检查型异常就是一个典型的用户错误或者一个程序员无法预见的错误。举例来说,如果一个文件将要被打开,但是无法找到这个文件,则一个异常被抛出。这些异常不能在编译期被简单地忽略。
运行时异常:一个运行时异常可能已经被程序员避免,这种异常在编译期将会被忽略。
错误:错误不是异常,但问题是它超出了用户或者程序员的控制范围。错误通常会在代码中被忽略,您几乎不能拿它怎么样。举例来说,栈溢出错误。这些错误都会在编译期被忽略。

JSP提供了可选项来为每个JSP页面指定错误页面。无论何时页面抛出了异常,JSP容器都会自动地调用错误页面。

接下来的例子为main.jsp指定了一个错误页面。使用<%@page errorPage="XXXXX"%>指令指定一个错误页面。

<%@ page errorPage="ShowError.jsp" %>






<%
// Throw an exception to invoke the error page
int x = 1;
if (x == 1)
{
throw new RuntimeException("Error condition!!!");
}
%>

现在,编写ShowError.jsp文件如下:

<%@ page isErrorPage="true" %>


Opps...

Sorry, an error occurred.

Here is the exception stack trace:


<% exception.printStackTrace(response.getWriter()); %>

注意到,ShowError.jsp文件使用了<%@page isErrorPage="true"%>指令,这个指令告诉JSP编译器需要产生一个异常实例变量。

现在试着访问main.jsp页面,它将会产生如下结果:

java.lang.RuntimeException: Error condition!!!
......

Opps...
Sorry, an error occurred.

Here is the exception stack trace:

目录
相关文章
|
1天前
|
Java 程序员 容器
JSP 教程 之 JSP 异常处理 6
**JSP异常处理涉及检查型和运行时异常,以及不可控的错误。当异常发生时,可设置错误页面来处理。示例展示了一个try…catch块的用法,用于捕获并显示除零错误的异常信息。访问示例页面将显示定制的错误消息。**
3 0
|
1天前
|
Java 程序员 容器
JSP 教程 之 JSP 异常处理 5
**JSP异常处理涉及检查型异常(如文件未找到)、运行时异常和错误。检查型异常不可忽略,而运行时异常编译时可忽略。错误超乎程序员控制,如栈溢出。当JSP页面抛出异常,容器会转向错误页面,如使用JSTL标签的`&lt;%@page isErrorPage=&quot;true&quot;%&gt;`定义的ShowError.jsp,显示详细错误信息。**
3 0
|
2天前
|
Java 程序员 容器
JSP 教程 之 JSP 异常处理 3
**JSP异常处理教程简述:** 编程时可能遇到的JSP错误包括检查型异常(如文件未找到)、运行时异常(可避免)和错误(不可控,如栈溢出)。JSP允许通过`&lt;%@page errorPage=&quot;...&quot;&gt;`指令设定错误页面,当异常发生时自动调用。
6 0
|
2天前
|
Java 程序员 容器
JSP 教程 之 JSP 异常处理 2
**JSP异常处理涉及检查型和运行时异常,以及不可控的错误。检查型异常发生在如文件缺失等情况下,运行时异常可预防。错误如栈溢出不受程序员控制。JSP允许通过`&lt;%@page errorPage=&quot;...&quot;%&gt;`指令设置错误页面,如在main.jsp中示例,当抛出异常时转至ShowError.jsp。**
8 0
|
3天前
|
Java 程序员
JSP 教程 之 JSP 异常处理 1
**JSP异常处理涉及检查型、运行时异常和错误。检查型异常不可忽略,运行时异常编译期可忽略。错误如栈溢出不受程序员控制。处理方式包括使用Exception对象,如通过`getMessage()`获取异常信息,`printStackTrace()`打印栈轨迹。**
6 0
|
3天前
|
存储 Java
JSP 教程 之 JSP 表达式语言 8
**JSP EL简化了JavaBean数据访问,支持算术和逻辑表达式,允许使用数字、字符串及布尔值。示例展示如何获取HTTP头信息:`${header[&quot;user-agent&quot;]}`显示&quot;user-agent&quot;头信息。`header`单值,`headerValues`为数组。**
5 0
|
10天前
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
|
10天前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
【6月更文挑战第23天】构建Java Web应用,Servlet与JSP携手打造在线图书管理系统,涵盖需求分析、设计、编码到测试。通过实例展示了Servlet如何处理用户登录(如`LoginServlet`),JSP负责页面展示(如`login.jsp`和`bookList.jsp`)。应用基于MySQL数据库,包含用户和图书表。登录失败显示错误信息,成功后展示图书列表。部署到Tomcat服务器测试功能。此基础教程为深入Java Web开发奠定了基础。
|
10天前
|
缓存 小程序 前端开发
Java服务器端技术探秘:Servlet与JSP的核心原理
【6月更文挑战第23天】Java Web开发中的Servlet和JSP详解:Servlet是服务器端的Java小程序,处理HTTP请求并响应。生命周期含初始化、服务和销毁。创建Servlet示例代码展示了`doGet()`方法的覆盖。JSP则侧重视图,动态HTML生成,通过JSP脚本元素、声明和表达式嵌入Java代码。Servlet常作为控制器,JSP处理视图,遵循MVC模式。优化策略涉及缓存、分页和安全措施。这些技术是Java服务器端开发的基础。
|
10天前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
【6月更文挑战第23天】Java Web开发中,Servlet和JSP是构建动态Web应用的基础。Servlet处理逻辑,JSP专注展示。示例展示了Servlet如何通过`request.setAttribute`传递数据给JSP渲染。JSP自定义标签提升页面功能,如创建`WelcomeTag`显示欢迎消息。Servlet过滤器,如`CacheControlFilter`,用于预处理数据或调整响应头。这些集成和扩展技术增强了应用效率、安全性和可维护性,是Java服务器端开发的关键。