在java中开发Web浏览器的先决条件

时间:2013-01-13 17:19:45

标签: java browser prerequisites

  

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

我对Java语言有基本的了解,也对applet有一些了解。

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

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

非常感谢帮助

1 个答案:

答案 0 :(得分:3)

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

需要进入浏览器的内容:

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

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

由于您只对Java有基本的了解,而且上述任何组件本身都是相当复杂的项目,我建议您选择另一个项目,或者划分商业Web浏览器尝试实现的一小部分内容。 而不是。