jsp的内部方法使用


  jspInit(){}:jsp Page被初始化的时候调用该 步骤,而且该 步骤仅再初始化时执行一次,所以客以在这里进行一些初始化的参数配置等一次性工作,由作者 缔造
  jspDestroy(){}:jsp Page由于某种缘由被关闭的时候调用该 步骤,有作者 缔造
  jspService(){}:由jsp容器自动 缔造的 解决jsp Page的 步骤,由jsp容器 缔造
  精确的说,jsp应该由三个内部 步骤,也便是jspInit(),_jspService(),jspDestroy(),这三个 步骤中jspInit ()和jspDestroy() 可以由作者定义,而_jspService()由jsp容器依据jsp Pge的内容进行定义,不能由作者定义 。
  先说一下jsp网页的内部原理,当jsp文件第一次被 解决时,他会被转化成一个servlet 。jsp引擎首先把jsp文件转化成一个java源文件,假如在转化过程中 产生 舛误的话,会 立即 停止,同时向服务器端和客户端发送 舛误信息报告;假如转化 顺利了,就会产生一个class类 。 而后再 缔造一个 Servlet对象,首先执行jspInit() 步骤进行初始化操作,由于整个执行过程jspInit() 步骤只执行一次,所以 可以在这个 步骤中进行一些必要的操作 比方衔接数据库,初始化 部分参数等等,接着执行 _jspService() 步骤,对客户端的 申请进行 解决,对每一个 申请会 缔造一个线程,假如同时有多个 申请需求 解决的话就会 缔造多个线程,由于 servlet长 工夫 储存与内存中,所以执行速度快,然而由于初始化需求编译,所以第一次执行还是 比较慢的,假如由于某种缘由招致jsp网页关闭或者销毁的话会执行jspDestroy() 步骤 。

  <%@ page language="java" contentType="text/html; charset=gbk"%>

  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

  <html>

  <head>

  <meta http-equiv="Content-Type" content="text/html; charset=gbk">

  <title>测试</title>

  </head>

  <body>

  <%!

  public void jspInit(){

  System.out.print("开始");

  }

  %>

  <%!

  public void jspDestroy(){

  System.out.print(" 完毕");

  }

  %>

  </body>

  </html>
  执行这个jsp文件再关闭,查看tomcat/logs下的当天的日志,会发现内容是“开始 完毕”,这便是由于开始执行jsp文件的时候调用 jspInit() 步骤,在日志中记录下内容“开始”,在关闭jsp文件的时候调用jspDestroy() 步骤,在日志中记录下内容“ 完毕” 。