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>
时间: 2024-08-04 15:19:55

JSP的执行过程及其异常处理机制的相关文章

C++中读写文件过程中异常处理机制

在利用C++进行文件读取与写入过程中,无论是针对二进制文件还是文本文件均需要进行异常处理,在C++中我们可以利用CFile进行文件的读写,而在MFC中还可以利用CStdioFile进行文件的读写. 利用CFile进行读文本文件过程中的异常处理可以通过如下代码实现 CString m_strFileName = "test.txt"; CFile m_File; CFileException ex; if (!m_File.Open(m_strFileName,CFile::modeRe

jsp的执行过程

今天我们要弄懂两个问题: 第一个就是jsp的运行原理,第二个就是为什么说jsp就是一个servlet 一.jsp的运行原理 1.访问jsp页面,首先tomcat服务器会去扫描jsp文件,把它翻译成java源文件 2.tomcat服务器翻译完jsp页面后,会对其java源文件进行编译成class字节码文件 3.tomcat服务器会构造这个jsp的类对象 4.tomcat服务器会调用这个jsp类对象里面的方法 二.jsp其实就是一个servlet,为什么呢? 1.在tomcat服务器的word文件上

Java异常处理机制就是程序代码执行过程

我也是通过各种方式在进行验证是否可以满足我们的需求,今天我就发现了一个问题.现在我们来一起说明一下,这个可能不算是bug,而应该需要我们记住就可以了. 对于一副灰度图像I,她的每一个像素点I(x,y)都有一个灰度值,一般情况下可能的灰度取值有2^8=256个(0,1,...,255).如果我们统计出灰度值r在I中出现的次数n,并对其进行归一化(n/N,N是所有灰度值出现次数的总和),这样我们就可以得到像素r在I中出现的概率p(r).如果对每一个可能的灰度取值r都做同样的处理,我们可以得到如图1左

Java异常处理机制:try...catch...的执行流程

Java异常处理机制:try...catch...的执行流程 在项目中遇到try...catch...语句,因为对Java异常处理机制的流程不是很清楚,导致对相关逻辑代码不理解.所以现在来总结Java异常处理机制的处理流程: 1.异常处理的机制如下: 在方法中用 try... catch... 语句捕获并处理异常,catch 语句可以有多个,用来匹配多个不同类型的异常. 对于处理不了的异常或者要转型的异常,在方法的声明处通过 throws 声明异常,通过throw语句拋出异常,即由上层的调用方法

jsp的组成和执行过程

jsp由以下五个组成: Html静态页面 指令:  <%@  xxx  %> 小脚本:<%   xxx   %> 表达式:<% =       %> 声明:  <%!   xxx  %> 注释: html注释 <!-- html注释 -->  jsp注释 <%--jsp注释 --%> 脚本中的注释(java注释) /* 多行注释 */ //单行注释   sql注释 -- 执行过程: 翻译阶段 编译阶段 执行阶段 翻译   编译   执

JSP基本构成和执行过程

JSP(Java Server Page)页面是指扩展名为 .jsp 的文件. JSP是服务器端运行的页面,不像html文件直接就可以在浏览器中运行.JSP页面必须部署到web容器中编译成Servlet才能执行,可以说,JSP就是Servlet的一种形式. 事实上,JSP是Servlet发展的产物,关于JSP和Servlet的关系以后再在博客中介绍. JSP基本页面由指令标签,HTML标记语言,注释,Java代码,JSP动作标签5个部分组成. 1.JSP指令标签不会产生任何内容输出到网页中,主要

Java中JIN机制及System.loadLibrary() 的执行过程

Android平台Native开发与JNI机制详解 http://mysuperbaby.iteye.com/blog/915425 个人认为下面这篇转载的文章写的很清晰很不错. 注意Android平台上的JNI机制使用包括Java代码中调用Native模块以及Native代码中调用Java模块. http://www.ophonesdn.com/article/show/263(misybing:很遗憾该站已经挂掉) 众所周知,OPhone平台上的应用开发主要基于Java语言,但平台完全支持且

jsp执行过程

JSP执行过程图解 第一次请求: 当服务器上的一个JSP页面被第一次请求执行时,服务器上的JSP引擎首先将JSP页面文件转译成一个.java文件,也就是servlet,并编译这个java文件生成.class的字节码文件,然后执行字节码文件响应客户端的请求. 再次请求: JSP引擎将直接执行字节码文件来响应客户.

JSP执行过程详解

复习JSP的概念 JSP是Java Server Page的缩写,在传统的HTML页面中加入JSP标签和java的程序片段就构成了JSP. JSP的基本语法:两种注释类型.三个脚本元素.三个元素指令.八个动作指令. JSP的内置对象常用的有:Request.Response.Out.Session.cookie.Application等. JSP中的局部变量和全局变量 在JSP基本语法博文中有个小例子counter.jsp <%@ page language="java" imp