「JavaオブジェクトをHttpポストで送信する方法」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
クライアント
package com.javaagogo.postjavaobject.httpclient;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import com.javaagogo.postjavaobject.data.DataObject;
public class Main {
public static void main(String[] args) {
try {
URL url = new URL("http://localhost:8080/postjavaobject");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setDoInput(true);
con.setDoOutput(true);
DataObject data = new DataObject();
data.setName("I am client.");
data.setId(1);
// DataObjectを送信
ObjectOutputStream out = new ObjectOutputStream(con
.getOutputStream());
out.writeObject(data);
out.flush();
out.close();
ObjectInputStream in = new ObjectInputStream(con.getInputStream());
DataObject response = (DataObject) in.readObject();
in.close();
System.out.println("name=" + response.getName() + " id=" + response.getId());
} catch (Exception e) {
e.printStackTrace();
}
}
}
サーブレット
package com.javaagogo.postjavaobject;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.javaagogo.postjavaobject.data.DataObject;
@SuppressWarnings("serial")
public class PostJavaObjectServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
try {
// アプレットから要求を受信する
ObjectInputStream in = new ObjectInputStream(req
.getInputStream());
DataObject inData = (DataObject) in.readObject();
in.close();
// アプレットに返す文字列を作る
DataObject outData = new DataObject();
outData.setName("サーブレット エコー : " + inData.getName());
outData.setId(inData.getId());
// アプレットに送信する
ObjectOutputStream out = new ObjectOutputStream(resp
.getOutputStream());
out.writeObject(outData);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
データ
package com.javaagogo.postjavaobject.data;
import java.io.Serializable;
public class DataObject implements Serializable{
/**
*
*/
private static final long serialVersionUID = -6534725917724535071L;
private int id ;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public static long getSerialVersionUID() {
return serialVersionUID;
}
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}