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。 |