是否可以执行JSP页面并在Web应用程序之外捕获其输出? 模式具体来说,在我的情况下仍然存在一个通常的Web应用程序,但它不是从其类路径加载JSP页面,而是从任意源加载.看起来我不能简
模式具体来说,在我的情况下仍然存在一个通常的Web应用程序,但它不是从其类路径加载JSP页面,而是从任意源加载.看起来我不能简单地获取RequestDispatcher并将其指向磁盘上的JSP文件. 我认为你最好使用像速度这样的模板引擎.这为动态内容提供了一个干净的基础架构,这与您提出的jsp / servlet内容明显不同.
也就是说,我已经看到了将jsps复制到其已部署目录中的应用程序,以便容器可以将它们拾取并转换它们.如果你这样做,请注意这限制了你未来的选择:
>你依靠你的申请“爆炸” – 例如它无法直接从WAR存档中运行(这可能会限制您的部署选项)
>如果你不禁用scriptlet,那么在运行时使jsps可编辑可能会打开安全漏洞(如果你禁用了,那么也会这样做,但是会有点困难……).禁用scriptlet禁止jsps中的真正Java代码,然后你只能使用标记库.
>您将需要在运行时可用的Java编译器,您可能不希望在生产系统中使用该编译器 – 例如您无法在部署之前预编译您的jsps.您还要在生产系统中在运行时支付通常的jsp-translation-penalty.
用于禁用脚本的web.xml配置:
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <scripting-invalid>true</scripting-invalid> </jsp-property-group> </jsp-config>
我希望这个web.xml片段经过,预览没有正确显示…
更新:尝试正确显示xml-snippet.