岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> Java >> 核心技术 >> SwingAwtApplet >> Java正文
Servlet传送对象给Applet使用
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-7-22 16:45:57

  需求是这样的:他想通过页面上一个Applet呼叫一个服务器Servlet,而从Servlet产生
  一个Java对象再传给另外一个Applet,怎么样让Servlet实时地把对象传给Applet这是一个问题,有一个方
  案是采用JMS(JavaMessageService),在我以后的文章中会有叙述的.这里我给大家展示一个简单的实现,那
  就是让Applet主动访问Servlet,让Servlet返回Java对象.下面给出全部代码和配置,其中Applet部分涵盖
  了javascript与Applet的互相调用,对于该部分不感兴趣的朋友可以复略.
  <pre>
  第一步,编写需要传递的对象类
  /**
  * Class Person just a demo for translate this class to client
  * @author: rookie
  * @datetime: 2002-7-26
  */
  package exapplet;
  import java.io.*;
  
  public class Person implements Serializable {//必须实现Serializable接口才能序列化
  private String m_Name;
  private int m_Age;
  
  public Person() {
   this("",0);
  }
  public Person(String name,int age) {
   this.m_Name = name;
   this.m_Age = age;
  }
  public String getName() {
   return m_Name;
  }
  public int getAge() {
   return m_Age;
  }
  
  //Serializable接口中声明的方法
  private void writeObject(java.io.ObjectOutputStream out)
    throws IOException {
   out.defaultWriteObject();
  }
  
  //Serializable接口中声明的方法
  private void readObject(java.io.ObjectInputStream in)
    throws IOException, ClassNotFoundException {
   in.defaultReadObject();
  }
  
  public static void main(String[] args) {
   try {
   Person p = new Person("Liaoyuan",25);
   ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("test.obj")));
   oos.writeObject(p);
   oos.close();
   ObjectInputStream ois = new ObjectInputStream (new FileInputStream(new File("test.obj")));
   Person q = (Person)ois.readObject();
   ois.close();
   System.out.println(q.getName());
   System.out.println(q.getAge());
   } catch(Exception exp) {
   exp.printStackTrace();
   }
  }
  }
  
  
  第二步,实现Servlet
  package exapplet;
  import java.io.*;
  import javax.servlet.*;
  import javax.servlet.http.*;
  
  public class MyServlet extends HttpServlet
  {
  public void doGet(HttpServletRequest req,HttpServletResponse res)
   throws ServletException,IOException
  {
   String fPath = "H:\\XSchool\\WorkingRoom\\exapplet\\src\\java.obj";
  
   String act = req.getParameter("Action");
   if ( act.equals("UpdateObject") ) {
   //创建更新JavaObject
   Person p = new Person("Liaoyuan",26);
   ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File(fPath)));
   oos.writeObject(p);
   oos.close();
   DataOutputStream dos = new DataOutputStream(res.getOutputStream());
   dos.writeBytes("Server Java Object Updated OK!");
   dos.close();
   } else if ( act.equals("GetObject") ) {
   //传回对象给Applet
   res.setContentType("application/octet-stream");
   Person p;
   ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File(fPath)));
   try {
    p  = (Person)ois.readObject();
   } catch (ClassNotFoundException e) {
    p = new Person();
   }
   ois.close();
   
   ObjectOutputStream oos = new ObjectOutputStream(res.getOutputStream());
   oos.writeObject(p);
   oos.close();
   }
  }
  public String getServletInfo()
  {
   return "A simple Servlet!";
  }
  }
  
  
  第三步,实现呼叫Servlet更新对象的Applet
  package exapplet;
  import java.awt.*;
  import java.applet.*;
  import java.io.*;
  import java.net.*;
  import netscape.javascript.*;

[1] [2] [3] 下一页


  • 上一个Java:
  • 下一个Java:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:Admin@Syue.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    传世私服 传奇世界私服 天龙八部私服 bet365 传世私服 天龙八部私服 热血江湖私服 英雄合击传奇私服 热血江湖私服 bet365 bet365