"Applet与Servlet的交互及数据库操作" 在Java编程中,Applet和Servlet的通信是一种常见的客户端与服务器端数据交换的方式。Applet是嵌入在Web页面中的小型Java程序,而Servlet是在服务器端运行的Java类,它们共同协作以实现动态交互和数据处理。本篇将详细讲解Applet与Servlet之间的通信机制以及如何利用这种通信来操作数据库。 首先,Applet向Servlet发送请求。当用户在浏览器中触发Applet的某个事件(例如点击按钮)时,Applet可以通过HTTP请求(通常是GET或POST)将数据发送到服务器上的Servlet。这部分通信过程通常涉及到参数的传递,如将需要执行的SQL查询语句作为参数通过HTTP请求发送给Servlet。 在描述中提到的链接中,可能包含了一种具体的方法,即如何从Servlet向Applet返回数据。这可能涉及到使用`CachedRowSet`,它是一个可滚动且可更新的结果集,允许离线处理数据,适合在Applet和Servlet之间传输。`CachedRowSet`可以缓存从数据库获取的数据,然后在Applet中进行本地操作,减少了与服务器的交互次数,提高了性能。 要使用`CachedRowSet`,开发者需要确保Applet的环境中包含了相应的JAR包,例如在netscape浏览器中,可能需要将`rowset.jar`添加到浏览器的扩展目录。同时,还需要正确配置数据库驱动,例如在上述代码中使用了JDBC-ODBC桥接驱动来连接到名为"BlueSite"的ODBC数据源。 在给出的代码示例中,`MyServlet`是一个简单的Servlet实现,它加载了JDBC-ODBC驱动并处理来自Applet的GET请求。当收到请求后,Servlet通过`DriverManager.getConnection()`方法建立到数据库的连接,然后创建`Statement`对象并执行由Applet传来的SQL查询。查询结果被返回给Applet,可能是通过设置响应体或者封装在`CachedRowSet`中。 在Applet端,接收到Servlet返回的数据后,可以进行进一步的处理,比如显示在用户界面上或执行其他业务逻辑。这里提到了`JavascriptApplet`,这意味着Applet可能与JavaScript进行了集成,允许更多的交互可能性,如在Web页面上更新内容或触发其他JavaScript函数。 总结起来,Applet与Servlet的通信是通过HTTP请求进行的,可以用于实现数据库操作。通过`CachedRowSet`,可以有效地在Applet和Servlet之间传递和处理数据库结果。在实际应用中,确保正确配置环境、处理好安全问题以及优化数据传输是关键。
这篇文章是继<<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();
下载后可阅读完整内容,剩余4页未读,立即下载
- 粉丝: 0
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦