在 Java 中从客户端到服务器的通信

Communication from client to server in Java

系统

对于学校项目,我们需要构建一个系统,包括:

  1. 两个Raspberry Pi(本地通过以太网通信,一个客户端和一个服务器)
  2. 服务器 Pi(强加Tomcat)必须根据连接到 Pi 客户端的控制器的输入生成一个网页。
  3. 实施是使用 Java 和 Java EE 完成的。

这是高级系统: The system needed (high level)

问题

我和我的同事面临的问题是,我们希望 serverclient 发生变化时更新网页(即按下控制器上的按钮)。通常,似乎是通过另一种方式进行通信,即从服务器到客户端。

在Java中有什么办法吗?

备注:

您可以使用 Servlet,尤其是 google HttpServlet 作为示例代码,以便您可以创建样板代码。您将设计一个具有 UI 交互的网页,如您所说,单击按钮,假设将生成顶部导航栏下的主要部分。最小化,客户端连接并单击按钮后,您的服务器将呈现页面。

你可以先玩doGet/doPostHttpServletclass的方法,这里有一个简单的例子;

package com.example.Main;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/mainpage")
public class SimpleServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String outputHtml = "<html><body><h3>Hello World !</h3></body></html>";

        resp.getWriter().write(outputHtml);
    }

}

这只是一个 HttpServlet hello world。很容易看出,您可以修改输出HTML,因此您需要编写额外的classes 来进行渲染和生成输出。

使用 class 由于用户交互而获取参数并生成 HTML 输出会很好(也许你可以使用 Builder Pattern