Объяснение метода invoke() в скомпилированном классе JAVA для страницы JSP
Изучая скомпилированный Java-файл для страницы JSP, я натолкнулся на метод invoke (). Этот простой метод имел случай переключения и, основываясь на значении переменной дискриминатора, выполнял метод invoke0 () или invoke1 (). Какова цель такого вызывающего метода, который вызывает методы, которые различаются только суффиксом из одной цифры? Ниже приведен скомпилированный код метода invoke () (только для справки).
public void invoke( java.io.Writer writer )
throws javax.servlet.jsp.JspException
{
javax.servlet.jsp.JspWriter out = null;
if( writer != null ) {
out = this.jspContext.pushBody(writer);
} else {
out = this.jspContext.getOut();
}
try {
Object _jspx_saved_JspContext = this.jspContext.getELContext().getContext(javax.servlet.jsp.JspContext.class);
this.jspContext.getELContext().putContext(javax.servlet.jsp.JspContext.class,this.jspContext);
switch( this.discriminator ) {
case 0:
invoke0( out );
break;
case 1:
invoke1( out );
break;
}
jspContext.getELContext().putContext(javax.servlet.jsp.JspContext.class,_jspx_saved_JspContext);
}
catch( java.lang.Throwable e ) {
if (e instanceof javax.servlet.jsp.SkipPageException)
throw (javax.servlet.jsp.SkipPageException) e;
throw new javax.servlet.jsp.JspException( e );
}
finally {
if( writer != null ) {
this.jspContext.popBody();
}
}
}
Кроме того, возникновение метода invoke () было только один раз. Где этот метод вызывается на странице JSP?