Java 如何使用DJNativeSwing配置默认URL/HTTP处理程序

Java 如何使用DJNativeSwing配置默认URL/HTTP处理程序,java,swing,Java,Swing,概述: 我正在创建一个带有嵌入式web浏览器(DJ Native Swing)的Swing应用程序。此web浏览器需要能够显示使用Java和GPG动态解密的内容 因此,假设您有一个简单的a.html,其中包含以下内容: < html > < body > Hello world < img src="b.jpg"> < /body> </ html> 你好,世界 处理程序首先应该看到对“a.html”的请求,然后我们的处理程

概述: 我正在创建一个带有嵌入式web浏览器(DJ Native Swing)的Swing应用程序。此web浏览器需要能够显示使用Java和GPG动态解密的内容

因此,假设您有一个简单的a.html,其中包含以下内容:

< html >
< body >
Hello world
< img src="b.jpg">
< /body>
</ html>


你好,世界


处理程序首先应该看到对“a.html”的请求,然后我们的处理程序会 找到文件a.html.gpg(加密文件),将其转换为a.html,打开它并写入字节 返回浏览器作为处理程序结果

现在,浏览器查看内容并意识到需要执行另一个请求 使其尝试访问b.jpg。我们的处理程序应该看到该请求并 重复该逻辑,现在将构成b.jpg的字节作为结果发送回

因此,我们真正想要的是拦截每个HTTPRequest for a.html、b.jpg,URL处理程序中的自定义代码将去解密该文件,并提供浏览器应该使用的字节,并在页面上呈现web组件

解密逻辑很好,只需要一种截取URL的方法,JWebBrowser就可以使用解密的字节来呈现页面。


我确实看到了一个方法WebServer.addContentProvider(HTTPRequest-req),但无法理解如何使用它。使用Dj Native Swing满足需求的任何替代方法也值得赞赏。

Dj Native Swing使用本机系统浏览器(当然,是的,这是显而易见的),并提供了一小部分功能。很久以前,当我处理浏览器请求时,我没有找到任何方法来拦截它

浏览器似乎也使用自己的方法来连接和检索数据(包括自己的代理、设置e.t.c)

我建议您研究与Swing的跨平台JavaFX浏览器集成(您可以阅读如何实现)。它有很多特性,这些特性都可以从Swing应用程序访问(您可以阅读更多)