applet 和servlet通信问题

我的 applet

.......
URL url = new URL(getCodeBase(), "NewServlet");

URLConnection con = url.openConnection();

con.setUseCaches(false);

InputStream in = con.getInputStream();
ObjectInputStream objStream ;
objStream = new ObjectInputStream(in);

treemod = (NewClass)objStream.readObject();

...........

我的 服务器端 servlet
.......
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
OutputStream out;
ObjectOutputStream objStream;
out = response.getOutputStream();

objStream = new ObjectOutputStream(out);

NewClass nclass = new NewClass();

objStream.writeObject(nclass);

...........
( NewClass 在applet和servlet都有定义 )


打开ie 后,java控制台报错


java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source)
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at NewJApplet.init(NewJApplet.java:31)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)


请问问题在哪里????

看你客户端好像没有对Http协议包进行处理,servlet服务器段是通过http协议联系的。

URLConnection方式采用的不是http协议。直接用他读http的url存在tcp的协议头字节无法解析的问题。
用HttpURLConnection就可以了。不过你可能会发现他的功能也很有限,对于超时等问题,不好解决。
更推荐用APACHE的专门用于http通信的包,好象是httpclient还是httpunit的,,忘了。。那个真的很好。

不只为何, 我把 要传送的 类实例 放在serive()方法里(原来在doget()里),在不同的客户机器上ie里能传到applet中,在本机上打开ie,报 安全类的错误??