zoukankan      html  css  js  c++  java
  • JSP的执行过程及其异常处理机制

    1、JSP的执行过程

        虽然JSP感觉上很像一般的HTML网页,但事实上它是以Servlet的形式被运行的。因为JSP文件在第一次运行的时候会先解释成Servlet源文件,然后编译成Servlet类文件,最后才会被Servlet容器运行,JSP的执行过程主要可以分为以下几点:
        1)客户端发出请求;
        2)Web容器将JSP转译成Servlet源代码;
        3)Web容器将产生的源代码进行编译;
        4)Web容器加载编译后的代码并执行;
        5)把执行结果响应至客户端。
     
    2、JSP的异常处理机制
        JSP中除了HTML代码,其他的就是Java脚本元素,所以在JSP页面中想使用try-catch来处理异常时比较困难的。JSP规范中定义了异常处理机制。
        1)撰写一个JSP“错误页面”
            异常处理文件中国需要使用page指令的isErrorPage属性:<%@ page isErrorPage="true"%>,此时能够访问异常对象exception。
        2)在JSP内指定异常发生时应该回应到哪个“错误页面”
            让页面产生异常的时候由专门的异常处理文件对异常进行处理,需要在该页面中使用page指令的errorPage指定专门的异常处理页面<%@ page errorPage="异常处理文件"%>
            当然,还可以通过web.xml文件进行异常处理文件的配置,为同一种类型的异常指定统一的异常处理文件。
            常见的异常编码:
            · 400错误:错误请求
            · 401错误:访问被拒绝
            · 403错误:文件被禁止访问
            · 404错误:文件没有找到
            · 500错误:文件在运行过程中发生未知错误
    例子:
    测试页面index.jsp,故意设置一个异常
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>异常页面</title>
    </head>
    <body>
        <%
            //这里故意设置了一个异常
            String[] strlen = {"hello","error","beijing"};
            for(int i = 0; i < 10; i++){
                out.println(strlen[i] + "--test");
                i++;
            }
        %>
    </body>
    </html>

    在web.xml文件中配置异常处理页面

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
              http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
             version="3.0">
        <!--根据异常编码进行配置-->
        <error-page>
            <!--为响应状态码声明错误页面-->
            <error-code>500</error-code>
            <location>/500.jsp</location>
        </error-page>
        <!--根据异常类型进行配置-->
        <error-page>
            <!--为特定的异常类型声明错误页面-->
            <exception-type>java.lang.Throwable</exception-type>
            <location>/500.jsp</location>
        </error-page>
    </web-app>

    编写异常处理页面500.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ page isErrorPage="true" %>
    <html>
    <head>
        <title>500错误处理</title>
    </head>
    <body>
    这是500的错误处理页面!
    <br>
    异常信息为<%=exception.getClass().getName()%>
    </body>
    </html>
     
  • 相关阅读:
    Asp.Net基础 9.Web开发原则
    JavaScript – 1.事件 + 2.变量 + 3.判断变量初始化 + 4.函数的声明 + 5.匿名函数
    DOM – 3.window对象的属性
    Dom – 1.window对象事件 + 2.body、document对象的事件
    faint
    开会
    it's over
    so funny
    no topic
    震惊:有良医生揭无良献血内幕!
  • 原文地址:https://www.cnblogs.com/yangyquin/p/5430366.html
Copyright © 2011-2022 走看看