applet与servlet通讯,发生"FileNotFoundException"异常!!

松耦合紧内聚 2002-04-22 08:19:06
我做了一个applet和servlet通过URLConnection 通讯。servlet放在web-inf/classes目录下。
applet通过URL aurl=new URL(getCodeBase(),"servlet/hehe")建立URL对象.
再通过URLConnection conn=aurl.openConnection()得到URLConnection对象。
设置可以输入,可以输出,不使用缓冲等等。
用conn建立输入输出流。
奇怪的事情发生了:
我建立的是对象输入输出流,
ObjectOutputStream os=new ObjectOutputStream(conn.getOutputStream());
建立对象输出流时,没有问题。
但是建立对象输入流时,
ObjectInputStream is=new ObjectInputStream(conn.getInputStream());
发生了FileNotFoundException 异常!!
输出流发送的数据,servlet可以收到。但是这个输入流却不能建立。我真的很奇怪!
“文件没有找到”异常是如何发生的呢?难以想象!
急死!!!请高人执教!!谢谢
...全文
94 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cherami 2002-04-22
  • 打赏
  • 举报
回复
哦,有一个问题需要注意:客户端和服务器的连接建立后使用流是应该注意的是先是客户端向服务器端写,然后服务器端接收,然后服务器端向客户端写,客户端再接收,这样只需要一次http连接,否则你需要使用多次连接。
cherami 2002-04-22
  • 打赏
  • 举报
回复
这个应该没有任何问题,我的程序片断:
applet里面:
Hashtable hash=new Hashtable();
int groupCount=record.getVecProductGp().size();
for (int i=0;i<groupCount;i++)
{
Mrp14a06_ProductGp gpRecord=(Mrp14a06_ProductGp)(record.getVecProductGp().elementAt(i));
int codeCount=gpRecord.getVecItem().size();
for (int j=0;j<codeCount;j++)
{
Mrp14a06_Item codeRecord=(Mrp14a06_Item)(gpRecord.getVecItem().elementAt(j));
hash.put(codeRecord.getStrItemCode()+","+i+","+j,new Integer(codeRecord.getIntLifePoint()));
}
}
try
{
URL url=new URL(hostURL+servletURL);
HttpURLConnection uc = (HttpURLConnection)url.openConnection();
uc.setDoOutput(true);
uc.setUseCaches(false);
uc.setRequestMethod("POST");
ObjectOutputStream outStream=new ObjectOutputStream(uc.getOutputStream());
outStream.writeObject(hash);
ObjectInputStream objStream=new ObjectInputStream(uc.getInputStream());
record=(Mrp14a06_WkdbAllData)objStream.readObject();



servlet里面:
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
Hashtable hash=(Hashtable)getObject(request);
writeObject(response,new Mrp14a06_WkdbAllData());

}
private void writeObject(HttpServletResponse response,Object obj) {

try {
ObjectOutputStream objOutStream = new ObjectOutputStream(response.getOutputStream());
objOutStream.writeObject(obj);
}
catch (IOException e) {
System.err.println (e);
}
}
public Object getObject(HttpServletRequest request)
{
try
{
ObjectInputStream objStream=new ObjectInputStream(request.getInputStream());
return objStream.readObject();
}
catch (Exception e)
{
System.out.println (e);
return null;
}
}

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧