参考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生命周期比较
JSP的生命周期.服务器不再把客户端的请求发给JSP
JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成servlet。 以下是JSP生命周期中所走过的几个阶段: 编译阶段:servlet容器编译servlet源文件,生成...
4.2 Servlet规范定义的Servlet 生命周期 70 4.3 JSP/Servlet的重定向技术综述 72 4.3.1 RequestDispatcher.forward() 72 4.3.2 response.sendRedirect() 73 4.4 理解会话 74 4.4.1 会话状态跟踪API...
JSP的原理,JSP的原理 jsp生命周期, jsp脚本
1. Servlet生命周期 9 2. Servlet的方法说明: 10 3. Servlet 在web.xml中的配置 10 4. Servlet元素说明 11 5. 如何写一个Servlet? 11 6. 在web.xml里配置的初始化参数怎么才能读回来? 12 7. 如何获得网页中form...
JSP(JSP介绍、工作原理、生命周期、语法、指令、行为、avaBean、JavaBean、内置对象的介绍、4种属性范围、应用)
JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成servlet。 以下是JSP生命周期中所走过的几个阶段: 编译阶段: servlet容器编译servlet源文件,生成...
jsp book 讲解jsp和servlet各个生命周期,请求过程来龙去脉。
资源名称:JSP软件工程案例...第2篇“实践·提高”篇以一个公务员信息管理系统为背景,以软件工程生命周期为步骤,讲述了从需求分析到系统发布的全过程设 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
10.2.2 Session Bean的生命周期 10.3 Entity Bean 10.3.1 Entity Bean的特性 10.3.2 Entity Bean的生命周期 10.4 EJB的开发 10.4.1 Enterprise JavaBeans的实际处理文件 10.4.2 实现EJBObject文件 10.4.3 ...
同时,读者还将学会如何控制Web应用生命周期中的主要事件,掌握JSTL最佳实践,了解如何构建自定义标签库。此外,《Servlet与JSP核心编程(第2卷 第2版)》还用较多篇幅深入介绍了Jakarta Struts框架。
Jsp内置对象session总结:详细介绍,Session机制,原理,生命周期h和Session的主要方法等。
14.1. 生命周期 14.2. 线程模型 14.3. 在jsp中定义类变量 14.4. jsp九大默认对象 15. 分页 15.1. 数据库分页 15.2. 使用jstl改写分页 16. Never End... 16.1. 对session何时生成的无用讨论 16.2. 对手工将jsp...
JSP 开发环境搭建JSP 生命周期JSP 动作元素JSP 隐式对象JSP 客户端请求JSP 服务器响应JSP 表单处理JSP 过滤器JSP Cookie 处理
2-3 Servlet 的生命周期 2-4 Servlet 范例程序 2-5 Servlet 2.4 的新功能 第三章 JSP 2.0 简介 3-1 JavaServer Pages 技术 3-2 What is JSP 3-3 JSP 与 Servlet 的比较 3-4 JSP 的执行过程 3-5 JSP 与 ASP 和 ASP+ ...
NULL 博文链接:https://1601844782.iteye.com/blog/2273999
视频描述: (-) servlet体系结构的介绍(二) servlet的网络拓扑结构(三) servlet的几个实例(四) servlet的生命周期(五) 一个简单的用户登录系统 韩顺平 j2ee视频实战教程servlet第2讲(下集).wmv 视频描述-) servlet...