Jakarta ee 如何将对象从java类传递到servlet?

Jakarta ee 如何将对象从java类传递到servlet?,jakarta-ee,servlets,httpclient,apache-httpcomponents,Jakarta Ee,Servlets,Httpclient,Apache Httpcomponents,我使用Apache的HttpClient从Java类调用servlet。我想向servlet发送一个对象,servlet应该使用序列化保存该对象。如何将对象发送到servlet public static void main(String[] args) { Names names = new Names(); names.setName("ABC"); names.setPlace("Bangalore"); HttpClien

我使用Apache的HttpClient从Java类调用servlet。我想向servlet发送一个对象,servlet应该使用序列化保存该对象。如何将对象发送到servlet

public static void main(String[] args) {

        Names names = new Names();
        names.setName("ABC");
        names.setPlace("Bangalore");
        HttpClient httpclient = new DefaultHttpClient();
        HttpGet httpget = new HttpGet("http://localhost:9080/HttpClientPractice/FirstServlet");
//Rest of the code
在上面的代码片段中,我有另一个类名,我想向servlet发送一个名称对象。现在我只使用URI调用servlet,但我想传递对象


谢谢

使用类似于您所展示的类中的库将对象转换为Json字符串,并将此字符串添加为查询参数-向您展示如何使用Gson执行此操作

Gson gson = new Gson();
String json = gson.toJson(names);
HttpGet httpget = new HttpGet("http://localhost:9080/HttpClientPractice/FirstServlet?obj="+json);
在要存储此对象的类中,执行fromJson(Gson库中的方法)


将对象发送到URL的最佳方式是将其作为XML或JSON发送,而不是序列化对象并发送它

如果方法保持不变,发送对象的一种方法是将url中的对象值附加为查询字符串,例如:
http://localhost:9080/HttpClientPractice/FirstServlet?name=ABC&place=Banglore 


另一种方法是将请求方法更改为POST并将对象作为XML或JSON内容发送。

我认为您需要研究POST方法来发送这样的数据。我相信使用GET方法只能发送文本数据。@silverback POST方法就是这样。谢谢谢谢,明白你的意思了。但有一点需要澄清。我希望servlet序列化我发送的对象,我不想发送序列化对象。@Rajath,那么,你想要一匹小马。为了通过网络发送对象,必须对其进行序列化。在Java中没有其他方法。它可能被称为“编组”,“编码”,不管怎样,仍然在下面的某个地方有序列化。明白了!我使用了“HttpPost()”而不是“HttpGet()”,并将字符串json作为键值对的值发送。我得到了一个java.lang.ClassNotFoundException:com.google.gson.gson行
gson gson=new gson()
。知道为什么会这样吗?
Gson gson = new Gson();
Names names = fromJson(json, Names.class);