2021-04-21 22:05  阅读(80)
文章分类:JSP 简单教程 文章标签:JSP
©  原文作者:一点教程 原文地址:http://www.yiidian.com/jsp/

1 JSP页面异常处理

异常是在运行时产生的exception对象。异常处理是处理运行时错误的过程。您的Web应用程序中随时可能会发生异常。因此,对于Web开发人员而言,如何处理异常是JSP开发者必须知道的事情。在JSP中,有两种处理异常的方法:

  1. 通过page指令的errorPage和isErrorPage属性
  2. 通过web.xml文件中的标签

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 运行测试

202104212201110_1.png

2021042122016_2.png

202104212209_3.png

202104212207_4.png

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 运行测试

结果和上一个案例一样。

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> JSP页面异常处理
上一篇
JSP自定义标签-定制URI
下一篇
使用JSP完成CRUD