大可制作:QQ群:31564239(asp|jsp|php|mysql)

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。