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

时间:2016-07-11 17:08:31

标签: java servlets listener

系统

对于学校项目,我们需要建立一个由以下组成的系统:

  1. 两个Raspberry Pi(通过本地以太网进行通信,客户端和服务器)
  2. 服务器Pi(强制使用Tomcat)必须生成一个网页,该网页根据连接到Pi客户端的控制器的输入而发展。
  3. 使用Java和Java EE完成实现。
  4. 以下是高级别的系统: The system needed (high level)

    问题

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

    有没有办法在Java中做到这一点?

    注意:

    • 网络浏览器和客户端不一定在同一台机器上。

1 个答案:

答案 0 :(得分:2)

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

您可以先使用HttpServlet类的 doGet / doPost 方法开始,这是一个简单的示例;

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世界。很容易看出你可以修改outputHTML,所以你需要编写额外的类来进行渲染并生成输出。

使用由于用户交互而产生参数并生成HTML输出的类将很好(可能您可以使用构建器模式)。