我對J2EE比較陌生(雖然不是Java),我有一個問題,我想跳過你們的一些專家。我讀了一些教程,但我仍然有點朦朧。這是情況。J2EE/JSP控制流問題
我已經繼承了一個jsp,它生成存儲在數據庫中的一些數據的html表示。我需要修改它,以便如果傳遞某個請求參數,除了生成html表示外,它還會生成數據的備用表示(以pdf形式),它將通過帖子返回給用戶url也將在請求參數中指定。所以,我想要做的事情(當指定這兩個額外的參數時)首先返回HTML表示,然後調用一個單獨的jsp/servlet,它將負責生成PDF視圖並將其返回給客戶端。
我的困惑是如何將控制權從最初的jsp傳遞給我的新jsp,使得第一個jsp不會被附加處理阻塞,並且客戶端將收到HTML視圖,即使PDF文件是烹飪。這有意義嗎?
我現在的計劃是檢查jsp底部的scriptlet中的參數,如果它是'true',則使用apache HttpClient將請求發送到jsp/servlet(運行在同一個web應用程序)負責生成PDF。該servlet將使用HttpClient將成品發回客戶端。我不知道,但如果這是真正做到這一點的正確方法,或者即使它能工作,這就是我發佈這個問題的原因。任何意見或建議將真正讚賞。
謝謝!
嗨moghaddam。感謝您抽出時間回覆。我們確實討論過包括你建議的鏈接,但其他方不想這樣做。這裏的客戶實際上並不是一個瀏覽器的最終用戶,而是一個不同的java web應用程序,交易的方式是,如果該標誌通過,他們將需要pdf。 JMS的想法很有趣,但這僅僅是對已經存在的大型Web應用程序的一個小改進,我不認爲添加新技術會飛:) – user2801442
我很困惑。您希望在結果頁面的末尾有一個scriptlet,它將另一個請求發送給生成PDF的servlet/jsp。讓我知道,你想如何將第二個servlet的輸出放在結果頁面中? PDF輸出是一個二進制數據,如果您必須將它放在結果頁面的某處,您必須與客戶端應用程序有一個通用協議才能從結果頁面主體中提取結果。它可能是一個隱藏標籤,它包含PDF文件的Base64表示。你認爲我正確地理解了你的問題? ;) – zaerymoghaddam
再次。毫無疑問,你因爲我的帖子不清楚而感到困惑。無論如何,我希望PDF * not *包含在結果頁面中,而是由我的servlet啓動的單獨的post操作中返回。因此,在我的場景中,可能會根據客戶端傳遞的三個請求進行標記: – user2801442