2010-06-24 144 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(甚至通过参数)输出一对小时或一整天,以避免在每个请求上调用页面。