我希望在PHP模板中包含JSP包含java代码的文件。这两个包含的问题是头文件和页脚文件。任何人有这样做的经验吗?我们正在考虑只是做一个HTTP请求来独立地从JSP文件中获取生成的HTML,但不确定这样做是否会有轻微的性能问题。
有没有更好的解决方案使用Apache中的一些工具来执行此操作?
答案 0 :(得分:10)
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);
答案 1 :(得分:2)
您不能将JSP页面包含在PHP页面中。
您可以按照自己的想法行事:执行HTTP请求以从JSP获取HTML内容并将其嵌入到PHP结果中。不漂亮,但会奏效。
答案 2 :(得分:0)
有Java / PHP Integration扩展名,但它不允许编译Java代码。如果没有执行命令行命令,我认为没有办法从PHP编译Java。
答案 3 :(得分:0)
根据您的要求,如果您不想影响页面加载,您还可以执行 AJAX 请求,以便在加载HTML页面后获取内容,并将其注入页面:这会将问题转移到客户端。
这个JSP页面是否经常更改,还是依赖于PHP页面的参数(某种广告)?
您还可以缓存 JSP的输出(甚至通过参数)一两个小时或一整天,以避免在每个请求上调用页面。