如何将对象从java类传递给servlet?

时间:2012-10-08 06:40:16

标签: java-ee servlets httpclient apache-httpcomponents

我正在使用Apache的HttpClient从Java类调用servlet。我想向servlet发送一个对象,该对象应使用Serialization保存对象。如何将对象发送到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

在上面的代码片段中,我有另一个类Names,我想将一个Names对象发送到servlet。现在我只使用URI调用servlet,但我想传递该对象。

谢谢!

2 个答案:

答案 0 :(得分:2)

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

Gson gson = new Gson();
String json = gson.toJson(names);
HttpGet httpget = new HttpGet("http://localhost:9080/HttpClientPractice/FirstServlet?obj="+json);

在您要存储此对象的类中,执行fromJson(Gson库中的方法)

Gson gson = new Gson();
Names names = fromJson(json, Names.class);

答案 1 :(得分:1)

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

如果方法保持不变,发送对象的一种方法是将url中的对象值作为查询字符串附加,例如:
http://localhost:9080/HttpClientPractice/FirstServlet?name=ABC&place=Banglore
另一种方法是将请求方法更改为POST并将对象作为XML或JSON内容发送。