【问题标题】:prerequisites for developing a web browser in java [duplicate]用java开发Web浏览器的先决条件[重复]
【发布时间】:2013-01-13 17:19:45
【问题描述】:

可能重复:
How to get started building a web browser?

对Java语言有基本的了解,对小程序也有一定的了解。

我必须为我的大学项目开发​​一个基本的 Web 浏览器,它可以显示简单的网站以及 Javascript 组件。

谁能告诉我先决条件是什么,即在做这件事之前我应该​​阅读哪些主题以及如何做?

非常感谢帮助

【问题讨论】:

  • 您打算使用现有的 JavaScript 引擎和 HTML 渲染器,还是打算自己编写两者?后者将是一项相当重要的任务,尤其是 JS。
  • 仅使用基本 Java 技能开发 Web 浏览器将是一项非常艰巨的任务。您将需要阅读并精通 Java 网络、文档解析和 GUI 开发。您是否允许使用预先存在的框架。
  • 问题专门询问Java。重复谈论 C# - 存在 一些 差异,特别是关于可以帮助您实现目标的库...

标签: java browser prerequisites


【解决方案1】:

编写网络浏览器是一项重大任务,具体取决于您想要包含的功能级别。

需要进入浏览器的东西:

  • HTTP 客户端,可以从服务器检索页面内容。 Java 在 java.net 中包含一些非常基本的内容,但如果可以,请改用 Apache Commons HTTPClient。许多浏览器还支持其他协议,例如 ftp:// 或本地文件 (file://)。
  • HTML 解析器,可以将返回的 HTML(或 XHTML)读入内存结构。这里的难点在于,不仅 HTML 已经进化了;还有很多 HTML 不符合多个 HTML 标准中的任何一个。人们只是倾向于写一些东西,看看它是否可以在特定的浏览器(例如,IE)上呈现,然后继续前进——某些浏览器几乎可以呈现任何东西。您可以为此使用现有的解析器,例如 JSoup,它对修复错误的支持也有限。
  • 渲染引擎。对我来说,这将是最复杂的一步。您需要真正深入阅读才能使任何类型的 CSS 支持正常工作(主要浏览器也很难做到正确),即使是嵌套表或复杂表单等非 CSS 渲染也意味着努力工作(计算在哪里每个页面组件都在呈现的页面上)。据我所知,没有附加渲染库,但 JEditorPane 中的 HTML 渲染支持极少(HTML 3.2?)——您也许可以使用它(忘记高级 CSS,touth)。
  • 脚本支持。这将解释 JavaScript,并使您的页面具有交互性。您可以为此使用 Rhino(由 Mozilla 的人员维护,功能非常强大)。

(加上内部缓存以避免重复请求;支持将页面保存到文件;支持 3rd 方插件/扩展,例如 Flash;避免对用户的跨站点脚本攻击的安全注意事项......还有更多我没有费心在上面列出的组件或问题)。

由于您仅对 Java 有基本的了解,并且上述任何组件本身都是相当复杂的项目,因此我建议您选择另一个项目或划定商业 Web 浏览器所做工作的一小部分以尝试实现那个代替。

【讨论】:

  • 非常感谢....顺便说一句,我正在考虑使用现有的渲染引擎,你能推荐一个好的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-08
  • 1970-01-01
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多