我正在使用Apache Tomcat 8.0.44,JSP Version 2.3
JSP在转换为类文件时似乎得到了优化
<%
int x = 0;
int y = 2;
%>
<p>Value is <%= y %></p>
当我检查字节代码时,以下代码中的示例,变量x被删除,因为它未被使用,尽管它在转换的java文件中可用。使用javac编译java文件时看不到此行为。
这个优化是由Tomcat完成的吗?可以根据需要打开或关闭它吗?
答案 0 :(得分:2)
Tomcat使用jasper jsp compiler,后者又使用(对于tomcat 8)Eclipse JDT compiler而不是javac。
Eclipse JDT编译器基于静态代码分析执行一些优化,其中一个删除未使用的变量。我认为如果您使用jdt standalone,可以选择保留它们,不确定jasper是否提供了这样的选项。