gpt4 book ai didi

jsp - 从自定义源加载 JSP 页面

转载 作者:行者123 更新时间:2023-12-04 22:12:01 25 4
gpt4 key购买 nike

是否可以在 Web 应用程序之外执行 JSP 页面并捕获其输出?具体来说,在我的例子中,仍然存在一个普通的 Web 应用程序,但它不是从类路径加载 JSP 页面,而是从任意源加载 JSP 页面。似乎我不能简单地获取 RequestDispatcher 并将其指向磁盘上的 JSP 文件。

最佳答案

我认为你最好使用像 velocity 这样的模板引擎。这为动态内容提供了一个干净的基础架构,与您要求的 jsp/servlet 内容明显不同。

就是说,我见过将 jsps 复制到其部署目录中以便容器获取并转换它们的应用程序。如果您这样做,请注意这会限制您 future 的选择:

  • 您依赖于您的应用程序被“分解”——例如它不能直接从 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 片段正确显示。

关于jsp - 从自定义源加载 JSP 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/195437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com