`

实现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与Servlet之间的通信与交互

    通过阅读《Applet与Servlet之间的通信与交互》系列文档,我们可以深入理解这两种技术的协作机制,从而更好地设计和实现动态Web应用。文档中的实例代码和解释可以帮助开发者掌握具体的实现细节,提升开发效率。同时,...

    applet和servlet的通讯,并打印

    在Applet和Servlet之间进行通信,通常是为了实现一些复杂的交互功能,比如在这个例子中,Applet需要请求Servlet来获取文件流,然后利用该文件流进行打印。 1. **Applet请求Servlet**: 当Applet需要从服务器获取...

    Applet and Servlet Communication

    本文将详细讲解Applet与Servlet之间的通信方式,并提供一个实例进行说明。 1. **基本概念** - **Applet**:Applet是Java编写的可以在Web浏览器中执行的小程序,它可以增强网页的交互性和功能,如图像处理、动画等...

    servlet applet通讯的例子

    在Java Web开发中,Servlet和Applet是两种不同的技术,它们可以协同工作以实现特定的交互功能。Servlet是在服务器端运行的Java程序,用于处理HTTP请求并生成响应,而Applet是嵌入在HTML页面中的小Java程序,可以在...

    A-S.rar_servlet applet

    本案例中,"A-S.rar_servlet applet"是一个示例项目,展示了如何利用序列化对象在Servlet和Applet之间进行通信,这对于理解Java网络编程以及Web应用程序的交互机制具有很高的学习价值。 首先,让我们深入了解一下...

    深入Java Servlet网络编程

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

    applet图片扫描程序

    总之,Applet图片扫描程序是Java Web开发的一个实例,它结合了Java Applet技术和图片处理能力,使得在网页中可以直接进行图片扫描成为可能。尽管由于安全和现代Web技术的发展,Applet的使用逐渐减少,但了解这种技术...

    servlet 8个最基础demo

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

    Servlet教程.pdf

    然后,Servlet容器创建Servlet实例并调用其API方法处理请求,构建响应;最后,Web服务器将响应返回给客户端。 Java Servlet API包含在`javax.servlet`和`javax.servlet.http`这两个包中。`javax.servlet`包提供...

    7个java applet例子源码.rar

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

    servlet总结

    3. **Servlet容器处理请求**:Servlet容器创建一个Servlet实例,并调用其`service()`方法来处理请求,然后将响应结果返回给Web服务器。 4. **响应返回客户端**:Web服务器将从Servlet实例获得的响应结果发送回客户端...

    servlet temple

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

    servlet-api.jar

    3. 请求处理流程:客户端发送请求到服务器,服务器创建Servlet实例,调用相应方法处理请求,最后返回响应。 4. Session和Cookie:会话管理技术,用于在多个请求之间保持用户状态。 5. Filter和Listener:Filter用于...

    Servlet技术.pdf

    在这个例子中,`j5_01`类继承自`HttpServlet`,实现了`init()`和`service()`方法。`service()`方法中,通过`PrintWriter`对象向客户端输出了一个简单的HTML页面。 总之,Servlet技术是Java Web开发的基础,掌握其...

    基于JSP技术实现的web的串口通讯方法

    - **Servlet概述**:Servlet是一种服务器端程序,类似于运行于客户端的Applet,但不具备与用户直接交互的能力。它们通常用于处理客户端发送的HTTP请求,并返回相应的响应。 - **Servlet与CGI的比较**:CGI (Common ...

    Servlet课件.doc

    Servlet与Applet不同,Applet运行在客户端的浏览器中,而Servlet则在服务器端运行,处理来自Web客户端的请求。 Servlet是实现CGI(Common Gateway Interface)功能的一种高效方式。CGI允许Web服务器与外部应用程序...

    第10章 Java Servlet技术.ppt

    - `init()`:初始化方法,仅在Servlet实例化时调用一次。 - `destroy()`:销毁方法,当Servlet不再需要时调用,释放资源。 - `service()`:此方法是请求分发的入口,会根据HTTP方法调用对应的`doGet()`或`doPost...

    Servlet中文内部教程

    3. Servlet容器创建一个Servlet实例,并调用`service`方法来处理请求,然后将处理结果返回给Web服务器。 4. Web服务器再将结果发送回客户端。 #### 四、Servlet API包 Servlet API主要由两个Java包组成:`javax....

    servlet_串讲

    Servlet与客户端小程序Applet相对,后者运行在用户的浏览器中,而Servlet则在Web服务器内部运行,与客户端进行通信。 Servlet的工作原理基于HTTP协议,当用户通过浏览器发起请求到特定的URL(例如`...

Global site tag (gtag.js) - Google Analytics