【问题标题】:Compile and interpret JSP with Java only仅使用 Java 编译和解释 JSP
【发布时间】:2009-07-09 10:21:20
【问题描述】:

我想在 Java 中编译和解释 JSP,而不是 Tomcat 或任何其他 servlet 容器。我想我可能会使用 Tomcat 附带的 Jasper 库,但我在 Web 上找不到任何示例。

我需要的最低要求是一个从编译的 JSP 和 HttpServletRequest 或类似的东西返回字符串(HTML 结果文本)的函数。

谢谢。

【问题讨论】:

    标签: java jsp


    【解决方案1】:

    如果您只是在寻找文本处理器(不一定是 JSP),您还可以查看Apache Velocity

    【讨论】:

    • Velocity 是一个糟糕的模板引擎——例如在执行内联语句时抛出异常。它没有比 JSP 更好的了。
    • ...除了从 Java 轻松呈现的能力,这就是这个问题的意义所在。
    【解决方案2】:

    在 Tomcat 之外用 Java 解释 JSP 或任何其他 servlet 容器。

    这根本不可能。不管你最终做什么,当它在非平凡的 JSP 上工作时,它都将是一个相当完整的 servlet 容器实现(会话呢?应用程序属性?Taglibs?),所以为什么不使用一个并节省自己的工作实施它?

    你真正想要达到的目标是什么?

    【讨论】:

    • 你是对的。我回答了 Pablojim,公开了我想要实现的目标。
    【解决方案3】:

    看一下tomcat自带的ant task源码,用于预编译jsp。这应该对您有所帮助。

    http://tomcat.apache.org/tomcat-5.5-doc/jasper-howto.html

    我也强烈质疑你为什么要这样做......

    【讨论】:

    • 感谢您的回答。我搜索了一下,这段代码使用 Jasper 的 JspC 类进行编译。也许它会有用。但实际上真正的挑战是解释 JSP。我需要返回一个由不同的解释 JSP 组成的 HTML 文本。这些 JSP 由执行时间决定,所以我认为我不能使用 或 Tiles。也许有一种更简单的方法可以实现这一目标。对于简化我的观点的任何帮助,我将不胜感激。
    • 您应该将此信息添加到上述问题中。但是仍然有点不清楚:你真的有代码在 servlet 容器中运行吗?这些 JSP 是如何“决定”的?描述你的实际场景和需求,不要再抽象了。
    【解决方案4】:

    Bob 大叔收到了 some blog posts 关于如何在 tomcat 之外使用 jasper 的信息。

    他的结论:

    此处描述的技术可用于测试几乎任何静态网页,或容器外的部分网页,并且无需运行网络服务器。设置相对简单;然后很容易扩展。有了它,您可以非常快速地旋转编辑/编译/测试循环,并且可以轻松遵循测试驱动开发的规则。

    【讨论】:

    • @Stephen 链接似乎已损坏,您能否发布指向该站点的更新链接。
    猜你喜欢
    • 2011-03-11
    • 2015-06-17
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多