如何将 java 对象从服务器端传递到客户端

how can i pass java object from server side to client side

我可以将 java POJO class 对象传递给客户端吗?
例如用户向服务器发送请求"/user"。服务器应将响应作为 User.java 对象发送

User.java class 是

public class User {

private String name = null;
private String education = null;

public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getEducation() {
    return education;
}
public void setEducation(String education) {
    this.education = education;
}

}

正如 mr.icetea 所建议的,您可以将 java 对象序列化为 json,然后将其传递。您可以使用 jackson 库执行 serialization/deserialization:http://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/

方法有很多种:

  1. 您可以使用任何 JSON、XML、SOAP 格式。

  2. 或者你可以使用小程序

  3. Rmi 如果使用独立 java 客户端。

我能想到的有两种简单的方法:

  1. 使用 JAXB 将用户对象转换为 xml 并返回以在客户端和服务器之间传输数据。
  2. 使用 GSON/Jackson 对 JSON 做同样的事情。

无论哪种方式,XML/JSON 都将直接映射到您的对象,并且相当容易实现。

还有其他方法,但我假设您使用的是 Web 服务,而这些方法最适合。

我有同样的需求,我使用 servlet 来做到这一点。会用servlet的可以参考这个

Servlet 端

ObjectInputStream objectStream = new ObjectInputStream(request.getInputStream());
User user = (User) objectStream.readObject();
objectStream .close();

客户端

User user = new User();
urlConnectionToTarget.setRequestMethod("POST");
urlConnectionToTarget.setDoOutput(true);
urlConnectionToTarget.setDoInput(true);
urlConnectionToTarget.setRequestProperty("Content-Type", "application/octet-stream");
urlConnectionToTarget.connect();
ObjectOutputStream servletObjectStream = new ObjectOutputStream(urlConnectionToTarget.getOutputStream());
servletObjectStream.writeObject(user);
servletObjectStream.flush();
servletObjectStream.close();