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 上调用
// 2.操作设置参数和一般请求属性。
// 3.使用
// 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);
}
}
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


























































