【问题标题】:invoke jsp from java code and get output从java代码调用jsp并获取输出
【发布时间】:2017-12-07 09:40:13
【问题描述】:

我有一个以某种格式显示数据的 JSP 页面。浏览器可以调用 spring showInfo.do 并转发到该 JSP。 即

public showInfo(HttpServletRequest request, HttpServletResponse response) {
RequestDispatcher rd = getServletContext().getRequestDispatcher("info.jsp");
dispatcher.forward(request,response);
}

JSP 的输出是 html。

现在我想从我的 java 服务器端代码(不在 servlet 上下文中)手动保存这个 JSP 输出,如下所示:

void saveInfo() {
params.setParameter("info1", "data");
String responseStr = Invoke("info.jsp", params);
//save responseStr to disk
}

我希望能够从服务将 html 页面保存在磁盘上,并使其看起来与用户可以从浏览器中看到的一样。因此,如果服务器离线,用户可以双击保存的 html 文件并在浏览器中查看最后的信息。 知道如何做到这一点吗?

【问题讨论】:

    标签: java spring jsp servlets


    【解决方案1】:

    麻烦。 servlet 规范要求 servlet 容器能够执行 JSP 文件。这通常通过将 JSP 转换为纯 Java 并生成 servlet 类文件来完成。

    如果您在 servlet 容器之外,您必须: * 要么完全实现 JSP 执行环境,例如通过使用来自 servlet 容器(如 Tomcat)的源代码 * 或者依靠servlet容器将JSP文件转换为.java或.class servlet,然后在上面使用Servlet接口方法

    或者,您可以尝试使用headless browser 来捕获应用程序的输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-31
      • 1970-01-01
      • 1970-01-01
      • 2013-04-29
      • 2016-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多