在jsp中包含div内部的外部网站

时间:2011-08-08 10:53:50

标签: jsp

我想在我的jsp页面的div中包含一个外部网站(例如www.example.com)。我不想使用框架,因为它不可取。

我尝试在线搜索解决方案,但我发现的所有内容都包括内部网页(例如网页.jsp)......

我真的很感谢你的帮助。

2 个答案:

答案 0 :(得分:7)

首先,如果涉及划分/包含本地内容(这是最常见的滥用框架),使用框架确实不可取。但如果涉及外部内容,则绝对可取。对于本地内容,您应该使用服务器端包含,例如<jsp:include>

关于具体问题,如果外部网站的HTML响应没有与您自己的JSP页面的HTML响应发生冲突(即它没有返回一个完整的<html>文档,这将使您的最终HTML响应完全invalid因为重复/嵌套<html>元素,但它返回一些与上下文无关的HTML片段,例如<span>blah</span>),那么您可以使用JSTL <c:import>对此。

<c:import url="http://external.com/some/fragment.html" />

但是如果它返回一个完整的<html>文档和/或依赖于上下文,那么你真的必须使用<iframe>或者在它们之间引入一个代理servlet。有关此类servlet的具体启动示例,请查看以下答案:Make HttpURLConnection load web pages with images

答案 1 :(得分:1)

如果您只想在div标记中添加外部网页,您将面临几个问题,仅举几例:

  1. 处理外部网站内的链接
  2. cookie管理
  3. 资源管理(图片,css,javascript)
  4. 有不同的选项来处理这样的要求:

    1. 的iFrame;这不好,但为什么不可取?
    2. 服务器端反向代理;可能会变得复杂,因为您必须过滤外部链接(请参阅#3)
    3. 简单的框架(某种程度上已过时)
    4. 外部系统提供的定义良好的界面(例如一些RESTful东西)
    5. 总结:没有简单的方法只在div中提供外部页面。