JavaFX WebView从javascript捕获发布请求

时间:2014-08-27 20:06:54

标签: java javascript ajax html5 javafx

我第一次尝试使用JavaFX,我对WebView类很感兴趣。我希望能够使用它来本地托管一个基本上是桌面应用程序前端的HTML5站点。

我的问题是,如果我在webview中从javascript发出ajax请求,有没有办法用JavaFX处理该请求?部分应用程序可以处理发布请求,但我想知道是否有内置的东西?

- 编辑 -

我的问题最初措辞不佳。我实际上要做的是使用WebView创建一个类似于QT5提供的HTML5桌面应用程序。所以当我谈论ajax调用时,我的意思是我想以某种方式在JS和JavaFX之间架起一座桥梁。

2 个答案:

答案 0 :(得分:1)

我原来的问题有点不清楚,但你对你的问题的评论似乎有意义,所以这个答案只能解决这个问题。

  

我想知道JavaFX是否有一种简单的方法可以处理它们。基本上把它变成一个宁静的服务器

大多数休息服务器都通过http运行,如果要跟踪来自JavaFX WebView的html帖子流量,则需要运行http服务器。 Java有许多安静的服务器;例如jerseyrestlet。还有许多用于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提供了设计服务器的方法。

请考虑以下事项:

  • 对于简单的客户端 - 服务器架构,您可以查看Sockets
  • 要创建更复杂的Web应用程序,您需要查看使用Java Servlets创建Web应用程序。这些java程序需要执行Appication Server/Container支持 SOAP / RESTFUL Web服务
  • 如果您想使用javafx应用程序发送服务器,可以使用嵌入式服务器。例如Jetty Embedded Server