`

实现Applet与Servlet之间进行通讯的简单实例

 
阅读更多

Servlet传送查询记录集给Applet
这篇文章是继<<Servlet传送对象给Applet使用>>后,征对网友的特殊问题写的又一个实例.
现发表出来与大家分享,文中瑕癖之处甚多,望各位指教.
这个问题在csdn上已经有讨论了http://www.csdn.net/expert/topic/971/971710.xml.
具体的需求就不讲了,这里把我的实现步骤详细写下,与<<Servlet传送对象给Applet使用>>中提到的方法
一样.用到的CachedRowSet可以到
http://java.sun.com//Download4?userid=zlyperson&platform=zip&button=continue&config-file=rowset-1_0-ea4.config
去下.还有一个netscape的包,在C:\WINNT\java\Packages\0S0W0NFX.ZIP中.
我也把所需要的包及我的实现代码打成了包,其中包扩了CachedRowSet&netscape&本文.
http://63.210.240.215/rookieport/rowset.jar
下面给出全部代码和配置,其中Applet部分涵盖
了Javascript与Applet的互相调用,对于该部分不感兴趣的朋友可以复略.

<pre>
第一步,实现Servlet
package exapplet;
import java.io.*;
import java.sql.*;
import javax.sql.*;
import sun.jdbc.rowset.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class MyServlet extends HttpServlet
{
static {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (Exception e) {
e.printStackTrace();
}
}

public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException
{
try {
Connection dbconn = DriverManager.getConnection("jdbc:odbc:BlueSite");
Statement stmt = dbconn.createStatement();
String dbsql = req.getParameter("DBSQL");
ResultSet dbrest = stmt.executeQuery(dbsql);
CachedRowSet crs = new CachedRowSet();
crs.populate(dbrest);
dbrest.close();
stmt.close();
dbconn.close();
//传回对象给Applet
res.setContentType("application/octet-stream");
ObjectOutputStream oos = new ObjectOutputStream(res.getOutputStream());
oos.writeObject(crs);
oos.close();
} catch (Exception exp) {
exp.printStackTrace();
}
}
public String getServletInfo()
{
return "A simple Servlet!";
}
}

第二步,实现提取对象的Applet
package exapplet;
import java.awt.*;
import java.applet.*;
import java.io.*;
import java.net.*;
import javax.sql.*;
import sun.jdbc.rowset.*;
import netscape.javascript.*;

public class MyAppletB extends java.applet.Applet
{
public void init()
{
}
public void paint(Graphics g)
{}

//This method will be call in html
public void invoke() {
try {
URL url = new URL("http://Liaoyuan:8080/WorkingRoom/exapplet/PostToApplet?DBSQL=Select%20TopicName,TopicName,TopicName%20from%20Topic");
//注意url中的空个用%20替代.

URLConnection urlcon = url.openConnection();
urlcon.connect();
ObjectInputStream ois=new ObjectInputStream(urlcon.getInputStream());
CachedRowSet crs = (CachedRowSet)ois.readObject();
ois.close();
while ( crs.next() ) {
JSObject.getWindow(this).call("alert",new String[]{crs.getString(1)});
}
crs.close();
} catch (Exception e) {
}
}
}

第三步,配制WebServer(我用的是Tomcat4.0)
拷贝编译后的MyServlet.class到相应目录下,或者下载我打的包到WEB-INF\lib下
编辑对应的web.xml文件,确保下面的内容正确
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>PostToApplet</servlet-name>
<servlet-class>exapplet.MyServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>
PostToApplet
</servlet-name>
<url-pattern>
/exapplet/PostToApplet
</url-pattern>
</servlet-mapping>
</web-app>

第四步,编写html文件
提取对象的html
<HTML>
<HEAD>
<TITLE> New Document For Using Applet </TITLE>
</HEAD>

<BODY>
Hello This is a Test!<br>
<APPLET id="obj_applet" align=center code="exapplet.MyAppletB" codeBase="." width=400 height=300 name="obj_applet" archive="BV7RFD3P.ZIP"></APPLET>
<Input type=button value="CallAppletMethod" onclick="callApplet()">
<Script language=javascript>
function callApplet()
{
obj_applet.invoke();
}
</Script>
</BODY>
</HTML>
</pre>

分享到:
评论

相关推荐

    Applet and Servlet Communication

    对java Applet与Servlet之间的通讯、通讯方式进行讲解,并给出一个实例。

    servlet applet通讯的例子

    servlet applet通讯的例子 解决传递对象问题

    A-S.rar_servlet applet

    一个applet servlet之间通过序列化对象通讯的例子,very useful

    servlet 8个最基础demo

    我们老师教学演示的servlet例子 从简单到难文件夹有八个demo供初学者学习 servlet01 servlet02 servlet03 servlet04 servlet05 servlet06 servlet07 servlet08 servlet是在服务器上运行的小程序。这个词是在Java ...

    深入Java Servlet网络编程

    11. 3 Applet和Servlet之间实现远程方法调用 11. 3. 1 远程方法调用中的设计模式 11. 3. 2 设计应用程序子协议 11. 3. 3 远程方法调用的实例 第12章 在Servlet中发送和接收邮件 12. 1 电子邮件协议 12. 2 利用...

    7个java applet例子源码.rar

    7个javaapplet例子源码.rar javaapplet是类似于flash的网页版java程序 jsp网页就是servlet小服务之意 而applet从名字上看就是小应用之意 本文制作了7个applet例子,欢迎大家学习

    servlet temple

    当允许客户机和服务器简单、高效地执行会话的情况下,applet也可以启动客户浏览器和服务器之间的连接。可以通过定制协议或标准(如 IIOP)进行通信。  (6) 对特殊的处理采用 MIME 类型过滤数据,例如图像转换和...

    Java技巧:实例讲解Servlet的图象处理

    我们在处理数据时,有时希望能用图象直观的表述,在这里有一个巧方法,能方便快捷的实现一些简单的图形(不能称之图象),比如条形图,我们不必去用 java来生成并显示图象,(java生成图象很慢),我们可以这样来作,先...

    JAVA编程百例(照着例子更容易!)

    实例79 一个简单的SERVLET 实例8 类的标识和访问控制 实例80 使用SERVLET获取客户表单 实例81 SERVLET读取COOKIE数据 实例82 SERVLET读取SESSION数据 实例83 一个简单的JSP 实例84 JSP处理表单提交 实例85 JSP连接...

    Servlet与JSP核心编程第2版

    9.5 对发往客户的url进行编码 9.6 显示客户访问计数的servlet 9.7 累计用户数据的列表 9.8 拥有购物车和会话跟踪功能的在线商店 第ii部分 jsp技术 第10章 jsp技术概述 10.1 对jsp的需求 10.2 jsp的好处...

    java+JDK+examples.rar_Swing Examples_java Applet_java file handl

    169个实例,内容涉及Java的语言基础、面向对象程序设计、数字处理、数组与集合、字符串、异常处理、文件操作、多线程、Swing编程、图形和多媒体编程、反射机制、网络程序设计、数据库编程、Applet、Java与XML、Java ...

    《Java编程技巧典型案例解析》随书光盘

    实例18 实现Java中的JTable与Excel之间的数据交换 实例23 Linux下Java程序的编译与调试 实例27 利用JNI实现企业Java程序与传统应用程序的集成 实例35 Java Servlet驱动SQLServer中的数据库 实例37 Java对象...

    JAVA 范例大全 光盘 资源

    实例199 JSP与Servlet之间的跳转 644 实例200 简单的JSP多人聊天室 653 实例201 Servlet生成的动态图片 658 实例202 简单的JSP上传文件 661 实例203 用Servlet获取Web服务器信息 666 实例204 可选择的图形...

    h_JAVA 2应用编程150例.rar

    实例76 简单的Servlet程序 254 实例77 简单的留言簿 256 实例78 JSP+Java Bean的计数器 258 实例79 数据库查询 260 实例80 文件的上传下载 262 实例81 收发E-mail 267 实例82 B/S结构的聊天室 269 实例83 网上选课 ...

    Applet实现的ckeditor粘贴word图片且图片自动上传

    最近用APPLET写了一个可以实现ckeditor中粘贴word图片且图片自动上传的插件,大家看看怎么样: 演示地址: http://test.reremouse.com/wordimg/ 插件使用JAVA APPLET技术开发,需要配合JavaScript使用,可以...

    Java JDK实例宝典

    169个实例,内容涉及Java的语言基础、面向对象程序设计、数字处理、数组与集合、字符串、异常处理、文件操作、多线程、Swing编程、图形和多媒体编程、反射机制、网络程序设计、数据库编程、Applet、Java与XML、Java ...

    精通Java网络编程光盘资料

    提供了本书第9章的实现具有简单功能的POP客户端实例的源程序; \char9\9-3\ 完整的JavaMail 提供了本书第9章的完整的JavaMail实例的源程序; \char10\10-1\ 一个完整的调用JDBC的例子 提供了本书第10章的一...

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    java范例开发大全

    实例212 List、Set与Array之间的相互转换 375 实例213 二分查找法的实现方法 377 实例214 模拟操作系统的进程调度 379 实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的...

Global site tag (gtag.js) - Google Analytics