JSP页面异常处理
1 JSP页面异常处理
异常是在运行时产生的exception对象。异常处理是处理运行时错误的过程。您的Web应用程序中随时可能会发生异常。因此,对于Web开发人员而言,如何处理异常是JSP开发者必须知道的事情。在JSP中,有两种处理异常的方法:
- 通过page指令的errorPage和isErrorPage属性
- 通过web.xml文件中的<error-page>标签
2 使用page指定进行异常处理
您必须定义并创建一个页面来处理异常,如error.jsp。然后,在可能发生异常的页面上定义page指令的errorPage属性来指定异常处理页面。
2.1 编写index.jsp
<%@ page language="java" contentType="text/html;charset=utf-8" %>
<html>
<html>
<head>
<meta charset="utf-8">
<title>一点教程网-JSP页面异常处理</title>
</head>
<body>
<form action="process.jsp">
请输入第一个数值:<input type="text" name="n1" /><br/><br/>
请输入第二个数值:<input type="text" name="n2" /><br/><br/>
<input type="submit" value="两数相除"/>
</form>
</body>
</html>
2.2 编写process.jsp
<%@ page contentType="text/html;charset=UTF-8" errorPage="error.jsp" language="java" %>
<html>
<head>
<title>一点教程网-JSP页面异常处理</title>
</head>
<body>
<%
String num1=request.getParameter("n1");
String num2=request.getParameter("n2");
int a=Integer.parseInt(num1);
int b=Integer.parseInt(num2);
int c=a/b;
out.print("结果是: "+c);
%>
</body>
</html>
2.3 编写error.jsp
<%@ page isErrorPage="true" contentType="text/html;charset=UTF-8" %>
<html>
<head>
<title>一点教程网-JSP页面异常处理</title>
</head>
<body>
<h3>异常发生!</h3>
具体异常信息为: <%= exception %>
</body>
</html>
2.4 运行测试
3 使用web.xml配置进行异常处理
这种异常处理方法更加推荐,因为您不需要在每个JSP页面中指定errorPage属性。在web.xml文件中指定一个配置即可处理该异常。这时,我们需要使用location元素指定异常类型或错误代码。如果要处理所有异常,则必须在exception-type元素中指定java.lang.Exception。让我们看一个简单的例子:
3.1 配置web.xml
1)指定异常类型的方法
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>
</web-app>
如果要处理所有异常,则如上所示。当前也可以指定特定的异常类型。
2)指定错误代码的方法
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
</web-app>
3.2 编写index.jsp
<%@ page language="java" contentType="text/html;charset=utf-8" %>
<html>
<html>
<head>
<meta charset="utf-8">
<title>一点教程网-JSP页面异常处理</title>
</head>
<body>
<form action="process.jsp">
请输入第一个数值:<input type="text" name="n1" /><br/><br/>
请输入第二个数值:<input type="text" name="n2" /><br/><br/>
<input type="submit" value="两数相除"/>
</form>
</body>
</html>
3.3 编写process.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>一点教程网-JSP页面异常处理</title>
</head>
<body>
<%
String num1=request.getParameter("n1");
String num2=request.getParameter("n2");
int a=Integer.parseInt(num1);
int b=Integer.parseInt(num2);
int c=a/b;
out.print("结果是: "+c);
%>
</body>
</html>
注意:您无需在JSP页面中指定page指令的errorPage属性。
3.4 运行测试
结果和上一个案例一样。
热门文章
优秀文章