jsp的内部方法使用
(sun企业级应用的首选)init(){}:jsp(sun企业级应用的首选) page被初始化的时候调用该方法,并且该方法仅再初始化时执行一次,所以客以在这里进行一些初始化的参数配置等一次性工作,由作者创建
jsp(sun企业级应用的首选)destroy(){}:jsp(sun企业级应用的首选) page由于某种原因被关闭的时候调用该方法,有作者创建
jsp(sun企业级应用的首选)service(){}:由jsp(sun企业级应用的首选)容器自动创建的处理jsp(sun企业级应用的首选) page的方法,由jsp(sun企业级应用的首选)容器创建
准确的说,jsp(sun企业级应用的首选)应该由三个内部方法,也就是jsp(sun企业级应用的首选)init(),_jsp(sun企业级应用的首选)service(),jsp(sun企业级应用的首选)destroy(),这三个方法中jsp(sun企业级应用的首选)init()和jsp(sun企业级应用的首选)destroy()可以由作者定义,而_jsp(sun企业级应用的首选)service()由jsp(sun企业级应用的首选)容器根据jsp(sun企业级应用的首选) pge的内容进行定义,不能由作者定义。
先说一下jsp(sun企业级应用的首选)网页的内部原理,当jsp(sun企业级应用的首选)文件第一次被处理时,他会被转化成一个servlet。jsp(sun企业级应用的首选)引擎首先把jsp(sun企业级应用的首选)文件转化成一个java源文件,如果在转化过程中发生错误的话,会立刻中止,同时向服务器端和客户端发送错误信息报告;如果转化成功了,就会产生一个class类。然后再创建一个servlet对象,首先执行jsp(sun企业级应用的首选)init()方法进行初始化操作,由于整个执行过程jsp(sun企业级应用的首选)init()方法只执行一次,所以可以在这个方法中进行一些必要的操作比如连接,初始化部分参数等等,接着执行_jsp(sun企业级应用的首选)service()方法,对客户端的请求进行处理,对每一个请求会创建一个线程,如果同时有多个请求需要处理的话就会创建多个线程,由于servlet长期贮存与内存中,所以执行速度快,但是由于初始化需要编译,所以第一次执行还是比较慢的,如果由于某种原因导致jsp(sun企业级应用的首选)网页关闭或者销毁的话会执行jsp(sun企业级应用的首选)destroy()方法。
<%@ 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 jsp(sun企业级应用的首选)init(){
system.out.print("开始");
}
%>
<%!
public void jsp(sun企业级应用的首选)destroy(){
system.out.print("结束");
}
%>
</body>
</html>
执行这个jsp(sun企业级应用的首选)文件再关闭,查看tomcat(一个很好用的jsp运行平台)/logs下的当天的日志,会发现内容是“开始结束”,这就是因为开始执行jsp(sun企业级应用的首选)文件的时候调用jsp(sun企业级应用的首选)init()方法,在日志中记录下内容“开始”,在关闭jsp(sun企业级应用的首选)文件的时候调用jsp(sun企业级应用的首选)destroy()方法,在日志中记录下内容“结束”。