我第一次尝试使用JavaFX,我对WebView类很感兴趣。我希望能够使用它来本地托管一个基本上是桌面应用程序前端的HTML5站点。
我的问题是,如果我在webview中从javascript发出ajax请求,有没有办法用JavaFX处理该请求?部分应用程序可以处理发布请求,但我想知道是否有内置的东西?
- 编辑 -
我的问题最初措辞不佳。我实际上要做的是使用WebView创建一个类似于QT5提供的HTML5桌面应用程序。所以当我谈论ajax调用时,我的意思是我想以某种方式在JS和JavaFX之间架起一座桥梁。
答案 0 :(得分:1)
我原来的问题有点不清楚,但你对你的问题的评论似乎有意义,所以这个答案只能解决这个问题。
我想知道JavaFX是否有一种简单的方法可以处理它们。基本上把它变成一个宁静的服务器
大多数休息服务器都通过http运行,如果要跟踪来自JavaFX WebView的html帖子流量,则需要运行http服务器。 Java有许多安静的服务器;例如jersey或restlet。还有许多用于Java的通用服务器(glassfish,wildfly,jetty,tomcat等),并且大多数都有API,允许您将它们嵌入到其他程序中。嵌入式服务器是与应用程序在同一台计算机上运行的Web服务器(因此不需要远程服务器)。这是embedded jersey server tutorial的链接,因此您可以获得嵌入式服务器工作原理的示例。
选择适当的服务器,将其嵌入JavaFX应用程序并使用它来提供JavaFX WebView使用的HTML页面。服务器还可以响应来自WebView提供的HTML的http get和form post命令。
通过将嵌入式服务器与您的应用程序打包为一个独立的应用程序,用户可以从包含Java运行时,嵌入式服务器和应用程序服务器的单个安装程序包安装软件 - 因此需要运行它们所需的一切您的应用在一个完全独立的包中本地。
答案 1 :(得分:0)
你误解了JavaFX及其webView的全部内容。
JavaFX用于创建客户端应用程序,它将在客户端计算机上运行。将服务器附加到您的应用程序的唯一目的是Client-Server architecture
WebView(来自文档)
此Web Engine组件基于 WebKit,是一个支持的开源Web浏览器引擎 HTML5,CSS,JavaScript,DOM和SVG。它使开发人员能够 在他们的Java应用程序中实现以下功能:
从本地或远程网址呈现HTML内容
支持历史记录并提供后退和前进导航
重新加载内容
将效果应用于网络组件
编辑HTML内容
执行JavaScript命令
处理事件
WebView就像我们使用的任何其他浏览器一样。如上所述,它由WEBKIT提供支持。然而,它通过JavaFX在JVM上运行。
JavaFX通常用于创建客户端应用程序。虽然,java提供了设计服务器的方法。
请考虑以下事项: