jsp会被翻译成servlet。
${i}会被翻译成:
out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${i}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null, false));
也就是说el表达式就是一个值,只是在翻译过程中,用out.write输出了。
<%=i%>会被翻译成out.print(i)
楼主可以在tomcat下的work下具体的虚拟主机下的看翻译后的源码。
jstl,是当遇到标签,就创建对应的对象,执行标签体。
总结:el表达式就是个值。我也是才学的。有错请提出
好好看书