这是我关于Stack Overflow的第一个问题,所以如果形式不好,请原谅并纠正我!
正如标题所暗示的那样,我正在尝试用Java实现一个轻量级的Web浏览器,但是我遇到了一个问题,但在我进入细节之前,我将简要介绍一下我的实现:
该计划包括以下课程:
GUI(扩展JFrame实现HyperlinkListener):图形用户界面
发动机:是否所有实际工作
BlackListPolicy(实现CookiePolicy)
我正在使用JEditorPane,其内容设置为“text / html”以显示网页 每当单击“GO”按钮或链接时,Engine会获取一个URL,然后获取JEditorPane.setPage(URL)
所以这让我想到了问题的第一部分:
浏览器正在运行,但只显示简单的html页面
如果我去谷歌例如如果我点击它工作的链接,它会记住我的设置(Cookies)
但如果按“Google搜索”按钮没有任何反应,则不显示任何嵌入对象(Flash,小程序等),其他页面也未正确编码
我的理论是,JEditorPane无法显示此类对象,也不是Web浏览器的不错选择,或者我为其设置了错误的内容类型。
关于我的问题的第二部分:
作为cookieHandler,我正在做以下事情:
BlackListPolicy blackListPolicy = new BlackListPolicy();
CookieManager cookieManager = new CookieManager(null,blackListPolicy);
因此我使用默认的CookieStore,这是我有限的理解使用内部实现来存储Cookie(它们不是持久的)这就是我想要的 但是,如果有人继续我称之为“极端浏览会话”,存储过多的cookie会导致任何性能或内存问题,或者默认的CookieStore会处理这种情况吗?
在你问之前,是的,我是学生,但这不是一个家庭作业,甚至是与我目前的编程课程相关的东西,这是我想要实现的东西,因为我注意到学习编程的最好方法是写程序
我只需要抽象答案可能会有一个链接可以让我朝着正确的方向发送,如果您希望我发布我的代码,我很乐意这样做
〜感谢
答案 0 :(得分:4)
JEditorPane
上的设置没有错误,因为它只支持一小部分HTML。如果你想要更好的东西,你将不得不自己构建一个完整的浏览器,这绝对不是一个小项目。
答案 1 :(得分:1)
我知道这是一篇旧帖子,但是,您是否考虑过使用HTMLUnit?
这有点复杂,但我认为这正是您所寻找的 - 一个完全基于Java的浏览器库,具有完整的JS支持。