从java代码调用jsp并获取输出

时间:2017-12-07 09:40:14

标签: java spring jsp servlets

我有一个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文件,并在浏览器中查看最后一个信息。 知道如何做到这一点?

1 个答案:

答案 0 :(得分:0)

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

如果您位于servlet容器之外,则必须: *要么完全实现JSP执行环境,例如使用来自像Tomcat这样的servlet容器中的源 *或依赖servlet容器将JSP文件转换为.java或.class servlet,然后在其上使用Servlet接口方法

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