1.client
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.net.URL;
import java.net.URLConnection;
public class ClientDemo implements Serializable{
private static final long serialVersionUID = 6923605292331605950L;
/**
* @param args
*/
public static void main(String[] args) {
try{
// 1.通過在 URL 上調用 openConnection 方法建立連線物件。
// 2.操作設定參數和一般請求屬性。
// 3.使用 connect 方法建立到遠程對象的實際串連。
// 4.遠程對象變為可用。遠程對象的頭欄位和內容變為可訪問。
URL u = new URL("http://localhost:8080/ExamCenter/SynchronizeManager");
URLConnection con = u.openConnection();
con.setDoOutput(true);
con.setDoInput(true);
con.connect();
// Send Data
ObjectOutputStream objectOutputStream = new ObjectOutputStream(new BufferedOutputStream(con.getOutputStream()));
objectOutputStream.writeObject(new ClientDemo());
objectOutputStream.flush();
objectOutputStream.close();
// Recieve Data
ObjectInputStream objectInputStream = new ObjectInputStream( new BufferedInputStream(con.getInputStream()));
Object obj = objectInputStream.readObject();
System.out.println(obj);
objectInputStream.close();
}catch(Exception exp){
exp.printStackTrace();
}
}
public void printDemo() {
System.out.println("對象 ClientDemo 傳輸成功!");
}
}
2、server
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SynchronizeManager extends HttpServlet ...{
private static final long serialVersionUID = -7477965020946583132L;
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException ...{
boolean isIE = false;
try ...{
// 輸入
try ...{
InputStream inputStream = request.getInputStream();
ObjectInputStream objectInputStream = new ObjectInputStream(new BufferedInputStream(inputStream));
Object obj = objectInputStream.readObject();
objectInputStream.close();
System.out.println("接收到對象:"+obj + "");
((ClientDemo)obj).printDemo();
} catch (Exception e) ...{
System.out.println("不要使用IE訪問該服務!");
isIE = true;
}
if (!isIE) ...{
// 輸出
ServletOutputStream outputStream = response.getOutputStream();
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(bufferedOutputStream);
objectOutputStream.writeObject("我是返回對象B");
objectOutputStream.close();
}else ...{
response.setContentType("text/html;charset=gbk");
PrintWriter out=response.getWriter();
out.print("<p align=center><font size=3 color=red>不要使用IE訪問該服務!:(</font></p>");
out.flush();
out.close();
}
} catch (Exception e) ...{
e.printStackTrace();
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException ...{
doPost(request, response);
}
}