`

JSP学习之jsp的生命周期

jsp 
阅读更多
参考w3school菜鸟教程
理解JSP底层功能的关键就是理解他们所遵循的生命周期
JSP的生命周期就是从创建到销毁的过程,类似于Servlet的生命周期!区别于Servlet的在于JSP的生命周期包括将JSP文件编译成Servlet

以下是生命周期所走的几个阶段:

·编译阶段
  Servlet容器编译Servlet源文件,生成Servlet类
·初始化阶段
  加载与JSP对应的Servlet类,创建实例,调用其初始化方法
·执行阶段
  调用与JSP对应的Servlet实例的服务方法
·销毁阶段
  调用与JSP对应的Servlet实例的销毁方法,然后销毁实例

JSP的四个主要阶段和Servlet是非常相似的,下面是图解




JSP编译

当浏览器请求jsp页面时,jsp引擎首先检查是否需要编译这个文件.如果这个文件没有被编译过,或者上次编译后被更改过,那么就编译这个文件

编译主要包括三个步骤:
                        1.解析JSP文件
                        2.将JSP转换成Servlet
                        3.编译Servlet


JSP的初始化

容器载入JSP文件后,它会在为请求提供任何服务前调用jspInit方法.如果您需要执行自定义的JSP初始化任务,重写jspInit()方法就行了.
一般来讲程序只初始化一次,servlet也是如此。通常情况下您可以在jspInit()方法中初始化数据库连接、打开文件和创建查询表


JSP的执行
在这一阶段,描述了JSP整个生命周期中一切与请求相关的交互行为,直到被销毁
当JSP网页完成初始化后,JSP引擎将会调用_jspService()方法。
_jspService()方法需要一个HttpServletRequest对象和一个HttpServletResponse对象作为它的参数,就像下面这样:

void _jspService(HttpServletRequest request,
                 HttpServletResponse response)
{
   // 服务端处理代码
}

_jspService()方法在每个request被调用一次,并且负责产生与之对应的response.并且它还负责产生所有7个HTTP方法的回应,比如GET、POST、DELETE等等。

JSP的消除


JSP生命周期的销毁阶段描述了JSP从容器中移除所发生的一切
jspDestroy()在JSP方法中等同于Servlet的Destory()方法,当您需要执行任何清理工作时复写jspDestroy()方法,比如释放数据库连接或者关闭文件夹等等。



其中有段测试的code

<%! %>中声明的是全局变量,不过写前面最好
<% %>中声明的是局部变量。
<%=%>一般表达式,输出某一变量的值


<%@ page contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
	<%!
		private int initVar = 0;
		private int serviceVar = 0;
		private int destroyVar = 0 ;
	%>
	<%!
	 public void jspInit(){
	    initVar++;
	    System.out.println("jspInit(): JSP被初始化了"+initVar+"次");
	  }
	  public void jspDestroy(){
	    destroyVar++;
	    System.out.println("jspDestroy(): JSP被销毁了"+destroyVar+"次");
	  }
	%>
	
	<%
	  	serviceVar++;
	  	System.out.println("_jspService(): JSP共响应了"+serviceVar+"次请求");
	
	  	String content1="初始化次数 : "+initVar;
	  	String content2="响应客户请求次数 : "+serviceVar;
	  	String content3="销毁次数 : "+destroyVar;
	%>
	
	<h1><%=content1 %></h1>
	<h1><%=content2 %></h1>
	<h1><%=content3 %></h1>
</body>
</html>


访问地址,得到如下结果,刷新后响应+1









  • 大小: 76.8 KB
  • 大小: 26.2 KB
  • 大小: 25.6 KB
  • 大小: 6.3 KB
  • 大小: 7.4 KB
分享到:
评论

相关推荐

    SERVLET生命周期与JSP生命周期比较

    ### SERVLET生命周期与JSP生命周期比较 #### 一、引言 在现代Web开发中,Servlet和JSP是两种非常重要的技术,它们都属于Java EE平台的一部分,主要用于构建动态Web应用程序。这两种技术各有特点,但又紧密相关,...

    JSP的生命周期

    JSP页面的生命周期是理解其工作原理的关键之一。本文将详细介绍JSP的生命周期,包括它的两个主要阶段——前端准备阶段与实际运行阶段。 #### 二、前端准备阶段 前端准备阶段是指在JSP页面被首次请求之前所经历的一...

    JSP学习资料大全(JSP教程)

    JSP生命周期** JSP的生命周期包括三个阶段:翻译、初始化和服务。翻译阶段将JSP转换为Servlet源码;初始化阶段,Servlet被加载并初始化;服务阶段,Servlet响应客户端请求,生成HTML并返回给浏览器。 **3. JSP内置...

    JSP学习笔记 jsp学习资料

    - **生命周期**:JSP页面在首次请求时被转换为Servlet,然后编译成字节码,最后由容器执行生成HTML响应。这个过程包括翻译、初始化、服务和销毁四个阶段。 ### 2. JSP指令 - **page指令**:用于设置整个页面的属性...

    JSP学习资料内容比较全面

    通过实践,你可以逐渐理解JSP的运行机制和生命周期。 接下来,学习JSP会涉及到更深入的主题,如隐含对象(例如request、response、session等)、JSP内置对象、EL(Expression Language)表达式、JSTL(JavaServer ...

    jsp基础学习资料(jsp基础学习资料)

    6. **JSP生命周期**:JSP页面经过编译、实例化、初始化、服务和销毁五个阶段。在服务阶段,每次请求都会创建一个Servlet实例,处理完请求后释放。 **JSP与Servlet的关系** JSP本质上是Servlet的简化版本。当JSP...

    JAVA_JSP学习系列

    2. **JSP生命周期**:从加载到销毁的过程,包括翻译、编译、初始化、服务、销毁等阶段。 3. **内置对象**:如request、response、session、application等,它们提供了与HTTP请求和响应交互的方法。 4. **EL...

    jsp学习基础课件(适用于初学者)

    1. **JSP基础入门**:这部分会介绍JSP的基本理念,包括JSP页面结构、生命周期、以及如何在服务器上部署和运行JSP应用程序。 2. **JSP基本语法**:讲解JSP的指令(directives)、脚本元素(scriptlets)、表达式...

    JSP学习电子教案JSP

    JSP页面生命周期 JSP页面在服务器上经历编译、初始化、服务和销毁四个阶段。在编译阶段,JSP会被转换为一个Servlet类;在服务阶段,每次请求都会调用该Servlet的service方法。 ### 8. JSP与Servlet的关系 JSP本质...

    分享JSP学习经验总结

    接着,引擎创建Servlet实例,调用`jspInit()`方法,该方法在整个Servlet生命周期中仅执行一次。 3. **请求处理**:对每个客户端请求,JSP引擎都会创建一个新的线程来处理,以实现多线程并发,提高响应速度。`jsp...

    jsp学习网站

    2. **JSP生命周期**: - JSP页面被服务器转换为Servlet,经历初始化、服务、销毁三个阶段。 - 初始化阶段,JSP会被编译成Servlet类,并加载到内存中。 - 服务阶段,每次HTTP请求都会调用Servlet的service方法,...

    JSP的学习资料,适合所有想学JSP的人

    ### JSP生命周期 JSP的生命周期包括三个阶段:翻译、初始化和服务。 1. **翻译阶段**:JSP被转换成一个Servlet源码,这个过程会将JSP中的静态内容和动态元素转化为Java代码。 2. **初始化阶段**:Servlet被加载并...

    资源 jsp 学习 之用

    总结来说,这个压缩包可能包含了一系列关于JSP的学习资源,涵盖了JSP的基本概念、语法、生命周期、内置对象、指令、动作元素,以及相关的实践项目,对于想要深入理解和学习JSP技术的开发者来说,是非常有价值的参考...

    JSP学习文档.docx

    **JSP生命周期**: JSP的生命周期包括三个阶段:加载、实例化和销毁。在加载阶段,JSP文件被转换为Servlet源代码;实例化阶段,Servlet被创建并初始化;销毁阶段,当Servlet不再需要时,会被垃圾回收器清理。 **JSP...

    jsp英语学习实践系统

    2. **JSP生命周期**:JSP页面在服务器端经历编译、实例化、初始化、服务和销毁五个阶段。在服务阶段,每次用户请求都会创建一个Servlet实例来处理请求并生成响应。 3. **JSP与Servlet关系**:JSP本质上是Servlet的...

    JSP源码jsp学习jsp学习

    JSP的生命周期包括三个主要阶段:翻译、初始化和执行。在翻译阶段,JSP容器会将JSP文件转换为一个Java Servlet源码,这个过程生成了一个名为_jspService()的方法。然后,编译器将这个Servlet源码编译成字节码,并...

    jsp学习笔记总结(收集)

    6. **JSP生命周期** JSP有三个主要阶段:翻译、初始化和服务。翻译阶段,JSP被转换为Servlet源码;初始化阶段,Servlet被加载并实例化;服务阶段,Servlet处理请求并生成响应。 7. **EL(Expression Language)与...

    servlet和jsp学习指南

    - 了解Servlet生命周期:从init()方法初始化Servlet实例到service()方法处理客户端请求,再到destroy()方法释放资源。 - 学习如何使用Servlet处理不同类型的HTTP请求(GET、POST等),并返回相应的HTTP响应。 - ...

    Servlet 和 Jsp 学习指南+ 代码

    Servlet生命周期包括加载、实例化、初始化、服务和销毁等阶段。在初始化阶段,Servlet会创建一个ServletConfig对象,它包含了来自web.xml的配置信息。Servlet通过重写doGet和doPost方法来处理HTTP请求,并通过...

Global site tag (gtag.js) - Google Analytics