如何在不影响输出的情况下从Servlet调用JSP?

时间:2011-03-29 10:28:16

标签: jsp servlets java-ee

我不是服务器端编程和Java-EE的专家,我一直在寻找如何实现一个非常简单的任务。我甚至不确定如何表达这一点,因此难以谷歌搜索或搜索API。

我有一个Servlet,这个Servlet正在调用两个不同的JSP页面。其中一个将是html代码的实际输出。 AFAIU可以通过这句request.getRequestDispatcher("my_jsp_page.jsp").forward(request, response);

来完成

但我要调用的第二个JSP不应该是响应/输出的一部分。它只是一个生成的vCard(文本文件)。所以我认为我不能使用前面的句子和include方法,因为include会影响输出,我是对的吗?

非常感谢任何提示或建议。

问候。

PD:可能我没有正确表达自己。 jsp-html文件的输出显示在浏览器上,也就是说,它是实际的响应。 jsp-vcard文件的输出是一个文本可下载文件,这就是为什么我认为它不应该包含在输出中。

3 个答案:

答案 0 :(得分:1)

只要包含的jsp文件不向响应写入任何内容,就可以包含它。它将被执行(在您的示例中生成文本文件),但不会影响您的最终输出。

答案 1 :(得分:1)

看起来,文本文件必须生成并存储在服务器上,并在后续请求中提供。

使用正常FileOutputStream存储文件,最好是在webapp之外的位置。

答案 2 :(得分:0)

您可以阅读文本文件并将其设置为响应。并设置

Content-type: text/plain