◆装载和实例化:服务端为JSP页面查找已有的实现类,如果没找到则创建新的JSP页面的实现类,然后把这个类载入JVM。在实现类装载完成之后,JVM将创建这个类的一个实例。这一步会在装载后立刻执行,或者在第一次请求时执行。
◆初始化:初始化JSP页面对象。如果你希望在初始化期间执行某些代码,那么你可以向页面中增加一个初始化方法(method),在初始化的时候就会调用该方法。
◆请求处理:由页面对象响应客户端的请求。需要注意的是,单个对象实例将处理所有的请求。在执行完处理之后,服务器将一个响应(response)返回给客户端。这个响应完全是由HTML标签和其他数据构成的,并不会把任何Java源码返回给客户端。
◆ 生命周期终止:服务器不再把客户端的请求发给JSP。在所有的请求处理完成之后,会释放掉这个类的所有实例。一般这种情况会发生在服务器关闭的时候,但是 也有其他的可能性,比如服务器需要保存资源、检测到有JSP文件更新,或者由于其他某些原因需要终止实例等情况。如果想让代码执行清除工作,那么可以实现 一个方法,并且在这个类实例释放之前调用该方法。本章随后一节“处理JSP的初始化和终止”将对此加以讨论。
在第6章中,你将看到Servlet的生命S周期和JSP的生命周期是一样的。这是因为容器把JP转化为Servlet;而JSP页面实现类就是一个Servlet类。图3ˉ1说明了JSP生命周期中处理请求的过程。
当客户端发送一个JSP的访问请求时,Web服务器会把这个请求转发给JSP容器,然后JSP容器将决定由哪个JSP页面实现类来处理这个请求。然 后,JSP容器调用JSP页面实现类的一个方法对这个请求进行处理,并且通过容器和Web服务器把响应返回给客户端。通常,这个过程可以简单说成“向 JSP发送一个请求”。
|
|
| 图3ˉ1 JSP源文件被编译成JSP页面实现类。服务器收到一个JSP的访问请求后,把这个请求发到容器,然后容器再把这个请求传递给相应的JSP。产生的响应则按相反的路径返回给客户端 |
没有评论:
发表评论