applet 和servlet通信问题

06-03-29 aqa
我的 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)

请问问题在哪里????

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

weistars
2006-04-01 20:17
URLConnection方式采用的不是http协议。直接用他读http的url存在tcp的协议头字节无法解析的问题。

用HttpURLConnection就可以了。不过你可能会发现他的功能也很有限,对于超时等问题,不好解决。

更推荐用APACHE的专门用于http通信的包,好象是httpclient还是httpunit的,,忘了。。那个真的很好。

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

猜你喜欢