Tomcat JSP编译优化

3
我正在使用Apache Tomcat 8.0.44,JSP版本为2.3。
当JSP被转换成类文件时,它们似乎会得到优化。
<%
    int x = 0;
    int y = 2;
%>
<p>Value is <%= y %></p>

在下面的代码示例中,当我检查字节码时,变量x被删除,因为它没有使用,尽管在转换后的java文件中可以使用它。这种行为在使用javac编译java文件时不会发生。
这种优化是由Tomcat完成的吗?是否可以根据需要开启或关闭?
1个回答

2
Tomcat使用jasper jsp编译器,而该编译器(对于Tomcat 8)又使用Eclipse JDT编译器,而不是javac。
Eclipse JDT编译器基于静态代码分析执行一些优化,其中之一是删除未使用的变量。我认为如果您正在使用独立的jdt,则有一个选项可以保留这些变量,但不确定jasper是否提供此类选项。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接