JSP的渲染机制与Velocity很不相同。JSP实际上执行的是JSP对应的java类(将JSP的html转化成out.write输出),最终执行的是翻译后的java类。
Velocity则是按照语法规则解析成一颗语法树,然后执行这颗语法树来渲染结果(遍历这棵树来渲染整个页面)。虽然这种动态的渲染方式很方便,但是当访问量大的时候,其执行效率会有很大的影响。
考虑到执行效率以及动态渲染的方便性,可以采用类似于JSP的渲染方式。改变解释执行,变为编译执行。将vm模板先编译为java类,再去执行java对象,从而渲染页面。