2011-03-29 30 views
0

我不是服務器端編程和Java-EE方面的專家,我一直在尋找如何實現一個非常簡單的任務。我甚至不知道如何表達這一點,這很難谷歌或在API中搜索。如何從Servlet調用JSP而不影響輸出?

我有一個Servlet,這個Servlet調用兩個不同的JSP頁面。其中之一將是實際的輸出,用html代碼。 AFAIU可以通過這句話request.getRequestDispatcher("my_jsp_page.jsp").forward(request, response);

但我想調用的第二個JSP不應該是響應/輸出的一部分。這只是一個生成的vCard(文本文件)。所以我覺得我不能使用前面的語句也沒有使用include方法,導致include會影響輸出,對不對?

任何提示或建議,非常感謝。

問候。

PD:可能我沒有正確表達自己。 jsp-html文件的輸出顯示在瀏覽器上,也就是說,它是實際的響應。 jsp-vcard文件的輸出是文本可下載的文件,這就是爲什麼我認爲它不應該包含在輸出中的原因。

+0

以及vCard txt文件如何參與所有這些? – Bozho 2011-03-29 10:30:04

+0

基本上,@Bozho請求包含一個帶有用戶ID的參數,用這個用戶ID獲取這個用戶的數據。有了這個數據,我生成了輸出(html文件)和一個可下載的vcard文本文件。這不正確嗎? – mdelolmo 2011-03-29 10:34:11

回答

1

看起來,文本文件必須生成並存儲在服務器上,並在後續請求中提供。

將文件存儲在正常的FileOutputStream中,最好放在webapp外部的位置。

+0

是的,所以我的問題是如何調用JSP來在服務器上寫入輸出。 – mdelolmo 2011-03-29 10:42:43

+0

@mdelomo - 看到更新。就像寫一個正常的文件 – Bozho 2011-03-29 10:47:50

+0

那麼......你會推薦忘記JSP嗎?我只是對最簡單的方法感到好奇,但是,是的,如果這是一種痛苦,我會用經典的方式來做。 – mdelolmo 2011-03-29 11:00:33

1

只要包含的jsp文件不會向響應寫入任何內容,您可以包含它。它會被執行(在你的例子中生成一個文本文件),但不會影響你的最終輸出。

+0

是的,事情是將該響應設置爲服務器上的文本文件,但這是一個提示...我會嘗試。 – mdelolmo 2011-03-29 10:40:59

0

您可以讀取文本文件並將其設置爲響應。並設置

Content-type: text/plain