0

我有一个程序允许脚本文件在Tic Tac Toe等游戏中相互“竞争” 。

可视化是在控制台中进行的,看起来像这样:

|  XO |
| OX O|
|  X  |
- X is the winner! Meh..

不是很令人兴奋。

我正在考虑制作一个 Swing 可视化,但是在看到Raphaël JavaScript 矢量图形库的演示文稿后,我决定制作基于浏览器的可视化浏览器会很酷,即使所有东西都将在同一台计算机上运行。

我需要一个成熟的网络服务器来适应这个吗?JavaScript 如何与 Java 程序通信?

4

5 回答 5

1

我需要一个成熟的网络服务器来适应这个吗?JavaScript 如何与 Java 程序通信?

如果您要托管 JavaScript 并在浏览器中显示,那么是的,浏览器需要能够通过 HTTP 请求从 Java 请求数据。尽管浏览器可以通过file:///URI 加载数据,但动态处理这些请求是(相当)尴尬的。

不过,安装 Web 服务器很简单。Tomcat易于安装,如果您愿意,还有其他几个选项,例如TJWS(无关系)、WinstoneLiteWebServerJetty ...

于 2012-05-03T15:21:28.033 回答
1

如果您被迫为游戏引擎运行 Java,我建议您使用Jetty让您能够为来自浏览器的 HTTP 请求提供服务。这一切都嵌入在您的应用程序中,不必将您的应用程序打包为 WAR 并在您每次进行更改时部署它。

[编辑] 只需阅读有关Tiny Java Web Sever的信息,如果您需要更小的占用空间,它也可以作为 Jetty 的替代品。

于 2012-05-03T15:29:11.420 回答
1

构建 Swing 界面将是最直接的解决方案,但这也可能是最混乱的解决方案。

如果您已经有一个 Web 服务器正在运行,那么 Web 浏览器解决方案可能是最令人满意的,但是设置和正确理解有很多开销。再说一次,你有不同的技术层可以使用并在(java、JSP、HTML、javascript、css 等)中感到困惑。

如今,有了 HTML5 和可用的 javascript 库,我认为 Web 界面是大多数界面的最佳选择,因此您不妨设置您的机器并将其用于下一个项目。

服务器 (Java) 和浏览器之间的任何通信都将通过来自浏览器的 HTTP 请求进行。

这可能以两种方式发生:

a) 通过按下浏览器 HTML 页面上的提交按钮并在服务器上呈现 HTML 页面作为响应(通常通过 JSP 之类的服务器端脚本,尽管您可以通过 java 代码生成整个页面)

b) 通过在 javascript 中使用 Ajax 对服务器进行异步调用,服务器将响应数据,然后您可以使用 javascript 解释和呈现这些数据(可能是您尝试做的最佳解决方案)。有许多现成的 javascript 库可以帮助您解决这个问题,包括 jQuery。

在方法 b 中,您实际上将在服务器端等待来自浏览器的帖子,然后您将使用 XML、json 甚至纯文本编写的页面进行响应。然后,您的 javascript 代码将解释数据并将其呈现在浏览器 HTML 页面上(您将在应用程序的起点加载该页面)。

于 2012-05-03T16:17:46.687 回答
1

Javascript 可以与页面上的 Java 小程序通信(至少在理论上)。Java 小程序在加载时会抛出警告,并要求在机器上安装 Java。

于 2012-05-03T16:19:52.907 回答
0

是的,需要一个网络服务器。Javascript 可能会作为 html 表单的一部分运行。如果需要任何 Java 端处理,则需要 Web 服务器。由于 html/javascript 无法与独立的 java 程序进行通信。但是为什么需要一个 java 服务器端程序呢?逻辑不能完全用java脚本编写吗?

于 2012-05-03T15:21:43.247 回答