ITEEDU

JSP/Servlet: JSP 生命周期

JSP会在第一次执行页面时转译为Servlet的.java原始码,然后再编译为.class,之后实例化对象并加载JVM中,虽然JSP会转译为 Servlet,不过如果您要对JSP撰写一些初始化的动作,我们不会重新定义Servlet中对应的init()方法,而是定义jspInit() 方法,例如:

<%! 
public void jspInit() { 
// ..... 
} 
%> 

为了要能够指定特定的初始参数给特定的JSP网页,您必须要在web.xml中如下定义,然后使用 config 隐含对象取得初始参数:

<servlet> 
<servlet-name>JSPConfigTest</servlet-name> 
<jsp-file>/config.jsp</jsp-file> 
<init-param> 
<param-name>count</param-name> 
<param-value>100</param-value> 
</init-param> 
</servlet>

同样的,您也可以定义jspDestroy(),就如同Servlet的destroy()方法:

<%! 
public void jspDestroy() { 
// .... 
} 
%> 

JSP最后是转换为Servlet,Servlet在执行时会执行service()方法,在JSP中您如果重新定义_jspService()方法,在转译为Servlet之后就是在重新定义service()方法,之所以在_jspService()方法上有个底线_,表示您不应该去动它,基本上您也不会去重新定义Servlet的service()方法。

为了要更了解JSP的生命周期,您必须了解 Servlet 生命周期,毕竟,JSP最后就是转换为Servlet。