2010-06-24 177 views
2

我希望在PHP模板中包含包含Java代碼的JSP包含文件。這兩個問題包括頭文件和頁腳文件。任何有這樣做的經驗?我們正在考慮只做一個HTTP請求,以獨立地從JSP文件中獲取生成的HTML,但不確定這樣做是否會出現輕微的性能問題。如何在JSP頁面中包含JSP

有沒有更好的解決方案使用Apache中的一些工具來執行此操作?

回答

8
echo file_get_contents('http://full/link/to/jsp/page'); 

如果您的JSP頁面回顯了標題,正文結構,則需要將其去掉。你可以從JSP端或PHP端做到這一點。

這在某些系統中被禁用,因此您可能需要使用cURL(它還允許您發回在使用表單時可能需要執行的操作)。

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent); 
curl_setopt($ch, CURLOPT_URL, 'http://full/link/to/jsp/page'); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_AUTOREFERER, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); 
curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
echo curl_exec($ch); 
2

您不能將JSP頁面包含到PHP頁面中。

你可以做你正在想的事情:做一個HTTP請求從JSP獲取HTML內容並將其嵌入到PHP結果中。不漂亮,但會起作用。

0

擴展名爲Java/PHP Integration,但不允許編譯Java代碼。如果不執行命令行命令,我認爲沒有辦法從PHP編譯Java。

0

根據您的要求,如果你不想影響頁面加載,你也可以執行AJAX請求搶內容一旦加載HTML頁面,並在頁面注入它:這會將問題轉移到客戶端。

這個JSP頁面是否經常變化,還是取決於PHP頁面的參數(某種廣告)?

您也可以緩存您的JSP(甚至通過參數)輸出一對小時或一整天,以避免在每個請求上調用頁面。