CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

Applet和Servlet之间传递对象是,Applet出现java.io.EOFException,请问怎么解决?????

楼主lishuguang(FFTLP)2004-09-02 09:53:03 在 Java / Web 开发 提问

如题所示,部分代码如下:  
  Applet部分代码:          
        ObjectOutputStream   outputToServlet;  
      URL   reqUrl=null;  
                reqUrl   =   new   URL(rip+"ServletDb?action=get&flag=sendfile");  
              URLConnection   urlcon   =   reqUrl.openConnection();  
              urlcon.setDoOutput(true);  
              urlcon.setDoInput(true);  
              urlcon.connect();  
              //   serialize   the   object  
              outputToServlet   =   new   ObjectOutputStream(urlcon.getOutputStream());  
              outputToServlet.writeObject(desk);  
              outputToServlet.flush();  
                outputToServlet.close();  
                ObjectInputStream   ois   =   new   ObjectInputStream(urlcon.getInputStream());  
                ois.close();其中desk是一个序列化的对象.  
  Servlet部分代码:  
        ObjectInputStream   inputFromApplet   =   null;  
                          DrawDeskIn   data=null;  
                          inputFromApplet   =   new   ObjectInputStream(req.getInputStream());  
                            data   =   (DrawDeskIn)inputFromApplet.readObject();  
                          inputFromApplet.close();  
                          File   f=new   File("WfPho");  
                          ObjectOutputStream   out   =   new   ObjectOutputStream(new   FileOutputStream(f));  
                          out.writeObject(data);  
                          out.writeBoolean(true);  
                          out.close();  
  运行时,Applet异常如下:  
  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   com.jswfmode.WFTemplate.sendfile(WFTemplate.java:121)  
   
  at   com.jswfmode.tool.SaveTool.enabledTool(SaveTool.java:35)  
   
  at   com.jswfmode.swing.DrawDesk.setTool(DrawDesk.java:140)  
   
  at   com.jswfmode.swing.DrawToolButton.actionPerformed(DrawToolButton.java:40)  
   
  at   javax.swing.AbstractButton.fireActionPerformed(Unknown   Source)  
  问题点数:100、回复次数:2Top

1 楼likestar413(如星)回复于 2004-09-02 10:09:08 得分 50

给你个例子,看看吧  
  servlet端  
  /**  
    *   type   class'   function  
    *    
    *   @author   Likestar  
    */  
  public   class   ServletToApplet   extends   HttpServlet   {  
   
  protected   void   doGet(HttpServletRequest   request,   HttpServletResponse   response)  
  throws   ServletException,   IOException   {  
  response.setContentType("text/html");  
  response.setCharacterEncoding("GBK");  
  try   {  
  PrintWriter   out   =   response.getWriter();  
  out.println("   ");  
  }   catch   (IOException   e)   {  
  //   TODO   Auto-generated   catch   block  
  e.printStackTrace();  
  }  
  }  
  protected   void   service(HttpServletRequest   request,  
  HttpServletResponse   response)   throws   ServletException,   IOException   {  
  response.setContentType("application/octest-stream");  
  try   {  
  ObjectInputStream   in   =   new   ObjectInputStream(request.getInputStream());  
  Object   obj   =   in.readObject();  
  in.close();  
  ObjectOutputStream   out   =   new   ObjectOutputStream(response.getOutputStream());  
  out.writeObject("成功");  
  out.flush();  
  out.close();  
  }   catch   (IOException   e)   {  
  //   TODO   Auto-generated   catch   block  
  e.printStackTrace();  
  }   catch   (ClassNotFoundException   e)   {  
  //   TODO   Auto-generated   catch   block  
  e.printStackTrace();  
  }  
  //System.out.println(obj);  
  }  
   
  public   static   void   main(String[]   args)   {  
  }  
  }Top

2 楼likestar413(如星)回复于 2004-09-02 10:09:42 得分 50

applet端  
  /**  
    *   type   class'   function  
    *    
    *   @author   Likestar  
    */  
  public   class   AppletToServlet   extends   Applet   {  
   
  private   String   msg   =   "你好";  
   
  public   void   init()   {  
  Button   but   =   new   Button("测试");  
  but.addActionListener(new   ActionListener()   {  
   
  public   void   actionPerformed(ActionEvent   e)   {  
   
  try   {  
  URL   url   =   new   URL(getDocumentBase(),  
  "servlet/ServletToApplet");  
  System.out.println(url);  
  URLConnection   con   =   url.openConnection();  
  con.setUseCaches(true);  
  con.setDoOutput(true);  
  con.setDoInput(true);  
  con.setRequestProperty("Content-type",  
  "application/octest-stream");  
  sendServletObject(con,"真实的世界");  
  System.out.println("发送信息");  
  msg=(String)   getServletObject(con);  
  repaint();  
  }   catch   (MalformedURLException   e1)   {  
  e1.printStackTrace();  
  }   catch   (IOException   e2)   {  
  e2.printStackTrace();  
  }  
  }  
   
  });  
  add(but);  
  }  
   
  public   void   paint(Graphics   g)   {  
  g.drawString(msg,   20,   20);  
  }  
   
  /**  
    *   给Servlet传送对象  
    *    
    *   @param   output  
    *   @param   obj  
    *   @throws   IOException  
    */  
  public   void   sendServletObject(URLConnection   con,   Object   obj)  
  throws   IOException   {  
  OutputStream   output   =   con.getOutputStream();  
  ObjectOutputStream   dataout   =   new   ObjectOutputStream(output);  
  dataout.writeObject(obj);  
  dataout.flush();  
  dataout.close();  
  }  
  /**  
    *   获得Servlet的传送对象  
    *    
    *   @param   input  
    *   @return   @throws  
    *                   IOException  
    */  
  public   Object   getServletObject(URLConnection   con)   throws   IOException   {  
  InputStream   input   =   con.getInputStream();  
  ObjectInputStream   datain   =   new   ObjectInputStream(input);  
  Object   obj   =   null;  
  try   {  
  obj   =   datain.readObject();  
  }   catch   (ClassNotFoundException   e)   {  
  e.printStackTrace();  
  System.out.println("对象读取错误!");  
  }  
  datain.close();  
  return   obj;  
  }  
  }Top

相关问题

  • 求助Applet Servlet
  • io
  • applet和servlet如何通信?
  • applet 调用 servlet 问题 ,急
  • Applet和Servlet如何通讯?
  • 怪!怪!servlet\applet通讯后***
  • APPLET与SERVLET的通信
  • Applet 调用servlet的问题
  • applet与servlet 通信问题
  • applet 连接 oracle出错,抛出 Io 异常。。。。

关键词

  • 代码
  • swing
  • null
  • outputtoservlet
  • urlcon
  • inputfromapplet
  • jswfmode
  • requrl
  • applet
  • objectinputstream

得分解答快速导航

  • 帖主:lishuguang
  • likestar413
  • likestar413

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo