我正在使用 jetty maven 插件和执行目标开发我的玩具项目jetty:run
。现在我决定检查它在tomcat上的工作方式。
我有两个 jspf 片段:其中header.jspf
包含我所有 jsp 页面的通用代码。我包括这样的片段:footer.jspf
WEB-INF/jspf/
<jsp:include page="WEB-INF/jspf/header.jspf" flush="true">
<jsp:param name="pageTitle" value="Customer registration"/>
</jsp:include>
Jetty 将它们处理为动态片段,而 tomcat 将它们处理为静态文本,这就是我可以看到的原因:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
在我浏览器的网页开头。通过将 *.jspf 重命名为 *.jsp,可以轻松解决 tomcat 的问题。问题是:为什么不同的 servlet 容器行为不同?我在 tomcat 8/9 和 jetty 9.3.7 上进行了测试。