再谈客户端的 Java 技术

Elasticsearch的几种Java客户端 介绍Elasticsearch的几种客户端: Java Low Level Client、Java High Level Client、Jest 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 在过去的几年中,Java 平台技术取得了一些惊人进展。但这项技术在某些方面的广泛应用和它最初的设计目标完全不同。Java 平台技术最初是希望通过客户端运行 Applet 和 application,来给网页增加交互性。而现在该技术最常见的用途却是基于服务器的 J2EE 系统。为了让 Java 平台在客户端发挥它的最大潜力,人们开发了许多新技术。由于企业系统逐渐被互联网应用程序所取代,掌握这些新技术也就非常必要。在这篇文章中,你可以看到如何利用新旧技术来达到此目的。 Applet 遇到什么问题? 当 Java 平台首次发布的时候,就预示着一种新方法,能够将互联网从静态的简单网页集合,提升到具有交互性的高级层次。Java 创始者的最初目的是为开发者们提供一些方法,创建可以在任何客户端机器上运行的小程序。这些程序还能够将客户端进程与服务端数据相结合,给客户提供高度的交互体验。 然而在某些地方,Java 为客户端所承诺的许多特性得不到实现。导致这个不幸的可能原因包括以下几种: 公司防火墙通常阻止 Java Applet 的通过。 许多客户端没有提供完全兼容的 Java 虚拟机。 安全设置不允许使用 Applet 来执行很多有用的规则。 浏览页面时,下载一个完整用户界面所需的开销,常常令许多用户对 Java Applet 望而却步。 必须为不同系统以及不同的平台,重新实现许多用户界面函数(打印,文件管理和其他一些类似任务)。这也是许多开发人员避免使用 Java Applet 的原因。 随着互联网上电子商务的成长,终端用户的处理能力有所增加,对通讯带宽的需求更是迅猛增长。在客户端组件中使用 Java 技术再度成为一件很有诱惑力的事情。然而,我们需要研究一种新方法,既能够利用客户端的程序,又不必遇到类似于使用 Java Applet 制作 ad-ware 和滚动新闻栏时所面临的障碍。通过新旧技术的结合使用,甚至融合某些几乎被快速奔跑的“互联网时代”所淡忘的旧技术,就能够减轻这些问题。 人们为什么称之为JavaScript 在客户端使用 Java 技术时,最为忽略的一点便是 Java Applet 和 JavaScript 之间的结合。JavaScript 标准早就为脚本提供了调用 Applet 类的方法,而 Applet 也能够调用脚本的函数。这种结合让我们能够发挥这两种技术的最大长处。我们开发并保持所需要的功能性,而将用户界面的设计交给网页开发人员来处理。此外,利用这种结合,还能够增加用户与服务器的交互程度却留下很少客户端参与的痕迹。 JavaScript 标准中的 LiveConnect 技术(参看资料部分),允许在网页中使用脚本来调用 Applet 方法。只要简单地创建所需要的 Java 类,并允许 JavaScript 脚本的开发者访问这个类中的方法便可。而 com.netscape.JSObject 类则使我们能够访问 JavaScript 函数和对象。这就提供了一种在 Java 代码中调用 JavaScript 函数的方式,直接令网页发生相当有趣和重要的变化。有了 JavaScript 和 Java Applet 之间的联系,那些 JavaScript 或 Java Applet 无法单独执行,但结合这二种方法却能完成的任务就能够被解决。而且,此二者的结合通常还能够减少网页提交到服务器的时间,从而减少了用户等待时间,服务器处理时间以及服务端的会话状态维护开销。考虑下列例子: 在用户填表的同时,后台线程使用 Java Applet 来在服务端数据库中寻找地址或电话号码信息。 当 SSL 不适合使用时,利用 PKI 技术来为系统间的通讯加密。 使用 DSA 标准来对请求签名,为消息内容和发送者提供强大的确认功能。 使用 Java Applet 向服务器数据库提交日程改变,并在客户端的背景上更新本地日程显示。不需要不断对所有日程做更新,并且最大程度地缩短这个改动生效所需的时间。 结合使用 Java Applet 和 JavaScript 代码进行动态显示,不断更新浏览器文档中的内容;这种结合允许我们不必为每个所想象得到的客户端平台都写一段打印例程,也能够将内容打印出来。 清单 1 阐述如何使用 JSObject 和 LiveConnect 来验证一个电话号码,同时将该号码转化成标准格式。注意到这只是一个例子代码,所以我在服务器连接方法中略去若干必须的函数调用,以便简化这个清单。这个例子是当电话号码输入框内容发生变化时,在 JavaScript 中调用 Java Applet 函数。于是 Java Applet 就访问服务器,获得这个电话号码的标准格式字符串,并将该字符串返回到隐藏框(hidden field)里。真正实现此任务的代码,应该用后台线程来实现服务器连接和电话号码验证,以便让验证过程对用户而言是透明的。这个例子还使用了另一项使客户端 Java 编程更为有趣的技术:HTTP 连接以及与服务器代码(特别是 servlet 和 JSP 网页)的结合。 基于服务器的资源 那些必须存放在服务器上的资源会怎样呢?这类基于服务器的资源包括地址验证,运输费用计算,以及信用卡验证等。支持数据以及要求高安全度的处理必须放在服务端,但大部分的验证处理,数据转换以及费用计算过程可以迁移到客户端系统上。支持这一想法的几个 Java 语言特点包括: Java 语言通过 HttpURLConnection 对象来为 HTTP 连接提供内在支持。同时利用 java.net 包的其他部分,为服务端代码与客户端代码之间的通讯提供一种方法,简单有效地生成数据或打包数据。 许多客户端的 Java Applet 代码实际上与那些在服务器上运行的代码是一样的。 现在我们可以将多种任务分配给服务器和客户机,从而减少服务器负载,甚至可能减少网络连接。具体如何分配这些任务将取决于系统的类型以及用户团体,但几乎所有的系统都会因为增加一些客户端处理而受益,例如: Applet 类能够将数据从一系列格式转化到单一的 XML 字符串格式,这使得服务器更容易处理数据。 Applet 类可以进行数据压缩,即把那些将要上载到服务器的数据压缩,同时将这些数据分割成较小的数据包,从而进一步提高了可靠性。 当用户填写结帐表单时,Applet 类能够进行地址和运输费用的计算(在更大的基于服务器数据库中这类计算常常需要进行交互)。此方法能够减少最后结算所需要的时间,同时令用户在提交定单之前就能够看到正确的运输费用以及相应税金等信息。 为了发挥这个技术的最大优势,需要一些方法向那些返回指定数据的服务器发送请求。 Java servlet 恰好具有这种能力。许多开发者并未完全意识到 servlet 能够将任何一种数据作为响应并返回,而不仅仅限于 HTML 或是 XML。通过返回一系列连续的对象或一个压缩的数据包,servlet 能够执行例如地址确认或运输费用和税金计算等任务。同时,进行这些计算的客户端代码可以通过后台线程的运行来掩盖用户等待时间。清单 2 中显示了一个servlet,该 servlet 接收 HTTP 的带有 Zip 代码的 GET 请求,并返回运输费用的计算结果。同样出于令清单清晰明了的目的,在这里省略了若干非常重要的实际代码。 注意到我使用 ObjectOutputStream 对象来将整个目标图表写入待返回的响应中。content 类型需要设置成某些合适的值,同时将 content 处理句柄分配到客户端。这种方法能够返回一个 Java 对象,里面包含顾客运输、处理费用以及应缴税金的计算结果。如果这个对象只是与客户端后台线程进行通讯,用户就根本不会意识到他已经和服务器进行了一轮通讯。 节约时间的新技术 上述技术都已实现若干时间了,且大多数正在全世界各种不同的系统上应用着。前面我曾经许诺过要介绍一些新技术,现在是具体阐述它们的时候了。客户端上最有趣的 Java 新技术当属 weblet。IBM alphaWorks 的 DirectDOM 就是该技术的一个具体实现(参看资料部分)。DirectDOM 允许从 Java 代码中访问整个浏览器 DOM tree (2000年11月13日 W3C 建议为 DOM Level 2)。weblet 没有用户界面,必须通过操纵浏览器中的活动 DOM 文档来完成它的工作。许多原先需要复杂 JavaScript 代码才能实现的技术,通过这种方法都能够实现。必须注意到尽管 DirectDOM 是一项很有吸引力的技术,它仍处在 alpha 阶段,是不完善的,并且需要 Internet Explorer 或 Mozilla (M18) 的最新版本才能够运行。然而,此技术足以使你预测到不远的将来将会如何令人激动。一些可能实现的例子如下: 在充满了大量图形和视觉刺激的结算网页上,加入 weblet。那么在用户处理结算表格的多个步骤时,不需要每步都在表单与网页间切换,也能够与服务器通讯交换数据并完成结算。当结算完毕需要确认时,weblet 会将整个包提交到服务器,服务器就可以按照通常的结算处理步骤进行处理。 一个显示属性消息的网页。weblet 通过令页面空白来标记对应于打印或保存请求的响应,从而防止数据被不加区别地共享。 用户可以向互联网上的应用程序请求获得某些报告。报告的摘要信息会马上传送到,而 weblet 则使用后台线程下载该报告的详细信息。当用户对摘要中某行条目感兴趣时,只要用鼠标点击该条目,weblet 就能够立即响应鼠标动作,在这个条目的下方显示详细信息。这些具体信息是在摘要页面下载后,才被后台线程下载的。但是用户并不会注意到这一点。 另一个长些的例子,更清楚地展示了 weblet 如何工作。在 清单 3,发送给客户端的 HTML 页面和 清单 4,weblet 类的 Java 代码中,可以看到这个例子。尽管它不适合于生产环境也未完善,但依然很有用。这个例子下载一个很长的示范网页,其中含有两个表单和一个 weblet 标记。weblet 用一些介绍性的文本来替代这些表单,或在演示过程中切换这两个表单。 为什么要做这些? 为什么我们会关注客户端的 Java 技术发展呢?为什么不建立那些只为网络上计算机工作的系统,或是瘦客户系统,而在服务器上执行绝大部分的复杂计算工作?简单的说,是因为我们无法提供这样的服务器服务。倘若要在单独一个服务器空间中安装足够的处理程序,来支持大量客户端所请求的巨大处理负载,开销将是极其昂贵的,因此才开发了分布式系统模型 (n-tier 结构)。客户端的 Java 技术允许我们减少大型系统中的操作开销的同时,大幅度提高客户端的参与——减少用户与服务器之间通讯的回合数,提高交互层次,改善数据的确认速度。客户端的 Java 技术还可以帮助我们实现一些服务器难以单独完成的任务,比如基于标记 (token-based) 的数字签名等。即便是单一的开发平台,企业版的 Java 2 也提供了强大的体系结构。可以将客户端 Java 技术与支持 Java 2 平台的服务器相结合,不能充分利用这个优势将非常遗憾。 资料 在 Netscape 中可以看到关于 JSObject and LiveConnect 的内容。 从 IBM alphaWorks 中获得更多关于 DirectDOM 的信息 DOM Level 2 Recommendation 可以在 W3C 站点上找到。。 从 Sun 获得关于 HttpURLConnection 的详尽信息。
java实现WEB服务器客户端技术 java实现WEB服务器客户端技术,,比如银行支付什么的, 立即下载

相关推荐

Gradient Accumulation 梯度累加/梯度累积 (Pytorch)

我们在训练神经网络的时候,batch_size的大小会对最终的模型效果产生很大的影响。一定条件下,batch_size设置的越大,模型就会越稳定。batch_size的值通常设置在 8-32 之间,但是当我们做一些计算量需求大的任务(例如语义分割、GAN等)或者输入图片尺寸太大的时候,我们的batch size往往只能设置为2或者4,否则就会出现 “CUDA OUT OF MEMORY” 的不可抗力报错。 那么如何在有限的计算资源的条件下,训练时采用更大的batch size...

hxxjxw的博客 5804

三分钟教你学会用java写客户端程序!!速进!!

写了这么多期的代码,一直都是在控制台里面,都没有像别的软件那样,可以有一个桌面客户端的形式,可以用鼠标点,用键盘输入。下面我们就来看看,怎么用Java写一个客户端程序。开局还是我们熟悉的...

微笑的小小刀 995

深度学习简介(框架)

深度学习是一种基于人工神经网络的机器学习方法,它通过模拟人脑的工作原理来解决复杂的数据模式识别问题。这种方法在图像识别、语音识别、自然语言处理等领域取得了显著的进展。深度学习是机器学习的一个子领域,它基于人工神经网络的学习算法,特别是那些具有多层(深层)结构的网络。这些深度神经网络能够学习数据的高级特征和模式。深度学习作为人工智能的关键驱动技术,已经在多个领域展现出其强大的能力。随着研究的深入和技术的发展,深度学习将继续推动人工智能的边界向前发展。

2301_77539454的博客 5351

JAVA 客户端技术

JAVA二阶段 前端的课堂笔记,案例

m0_71222496的博客 1966

c#窗体应用(.NET Framework)项目对Yaml文件进行写入与读取,Yaml数据转换成json

用到的技术与版本准备工作Yaml数据在C#中进行定义对Yaml文件的读取与写入代码的添加窗体控件控制操作写入数据到Yaml文件读取Yaml文件数据Yaml数据转换成json改进——对yaml文件读取时根据yaml文件中的键进行获取,对c#中怎么取名字无关yaml文件中多个数据读取遇到的问题总结的小点参考的文章在对Yaml文件进行读取前,先将Yaml文件中的数据结构在c#中进行定义,以便后面更好的读取。这里对这四个类型进行举例(这里为了想看看这四个类型到Yaml文件的格式是什么样子的)

永远年轻 1587

V-rep机器人仿真(Win10):UR5+RG2+Kinect+YOLOV3+DDPG+Pytorch(第四部分:YOLOV3图像识别)

这是一个V-rep机器人仿真实验,较为简单,适合初学者在入门图像识别、机器学习、机器人学的内容时进行学习与训练。 实验涉及的内容有:V-rep机器人仿真,YOLOV3图像识别,强化学习DDPG,UR5机械臂及RG2机械手,Kinect摄像头。 使用环境:Win10,Pytorch0.4,V-rep 整个实验一共由多篇文章组成,本文是第四部分。 第四部分:YOLOV3图像识别 文章目录第四部分:YO...

weixin_42158966的博客 5836

利用Java平台的特性建造一个令人瞩目的系统

选择自 chensheng913 的 Blog 在过去的几年中,Java 平台技术取得了一些惊人进展。但这项技术在某些方面的广泛应用和它最初的设计目标完全不同。Java 平台技术最初是希望通过客户端运行 Applet 和 application,来给网页增加交互性。而现在该技术最常见的用途却是基于服务器的 J2EE 系统。为了让 Java 平台在客户端发挥它的最大潜力,人们开发了许多新技术。由于企

海龙的天空 981

C语言版数字锁相放大器实现指南:从复数运算到嵌入式MCU移植的坑我都帮你踩了

本文详细介绍了C语言实现数字锁相放大器的关键技术,包括复数运算优化、嵌入式MCU移植的实战经验及内存管理策略。针对STM32等资源受限平台,提供了从浮点到定点数转换的优化方案,帮助工程师高效处理微弱信号提取问题。

weixin_30721077的博客 432

Java客户端开发是什么_客户端桌面应用一般是用什么技术开发的?

JAVA GUI觉得java是最好学的语言。也是像我这种非科班出生的,踏入码农行业的敲门砖(看C c++ 学了一年,也就hello word,会写几个demo界面)。Windows桌面应用程序开发Winform&WPF donetWinform是XP时代的Windows 桌面程序开发技术。采用C#语言开发UI和逻辑,没有使用标签语言写UI。采用事件驱动方法。Winform现在基本被淘汰了...

weixin_39963853的博客 2973

别再对着数据手册发愁了!用HFSS 2023 R2搞定ESP32-C3板载天线的阻抗匹配

本文详细介绍了如何利用HFSS 2023 R2进行ESP32-C3板载天线的阻抗匹配优化,解决实际PCB设计中常见的性能偏差问题。通过智能模型导入、科学参数扫描和量化优化流程,显著提升天线性能,适用于WIFI和蓝牙应用场景。

weixin_42523543的博客 447

【感知模块算法】障碍物detect+trace+prediction方向介绍

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、多维度看感知问题,体会复杂性二、障碍物/环境目标detect方向1.视觉目标检测方向(1)图像处理认知(2)视觉基础理论部分1、获取数据集---python网页爬虫、买数据、自己录数据、使用开源比赛的数据集2、opencv库的学习3、深度学习框架学习(3)视觉目标检测理论(1)目标检测的概念(2)目标检测的应用场景(3)现有目标检测框架原理及论文【这仅仅是我当初入门学习的框架~

qq_35635374的博客 2894

JAVAweb从入门到精通,打造高效可靠的Web应用

JAVAweb是一种开发Web应用的技术,它以Java语言为基础,通过Java Servlet、Java Server Pages、JavaBeans和Java HTTP客户端等技术,实现了高效可靠的Web应用开发。在本文中,我们将会深入探索JAVAweb的各种技术和工具,以及如何利用它们来开发强大的Web应用。

canshanyin的博客 1762

《Python星球日记》 第43天:机器学习概述与Scikit-learn入门

《Python星球日记》 第43天:机器学习概述与Scikit-learn入门

Code_流苏:在代码中寻诗意,在实践中觅真知 932

谈客户端的 Java 技术

Applet 遇到什么问题? 当 Java 平台首次发布的时候,就预示着一种新方法,能够将互联网从静态的简单网页集合,提升到具有交互性的高级层次。Java 创始者的最初目的是为开发者们提供一些方法,创建可以在任何客户端机器上运行的小程序。这些程序还能够将客户端进程与服务端数据相结合,给客户提供高度的交互体验。 然而在某些地方,Java 为客户端所承诺的许多特性得不到实现。导致这个不幸的...

welan 154

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Oracle客户端与java_Oracle 谈 JavaFX 及 Java 客户端技术的未来

原标题:Oracle 谈 JavaFX 及 Java 客户端技术的未来据 Oracle 博客称,从 JDK 11 开始,Oracle 将从 JDK 中删除 JavaFX,但在 2022 年之前,Oracle 还会继续为 JDK 8 中的 JavaFX 提供商业支持。2011 年,JavaFX 成为 Open JDK 的一部分开源,这项技术的发展现在由 OpenFX 社区负责。 在一份白皮书中,简要...

weixin_39562615的博客 174

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Redis的Java客户端

我们可以发现当我们存对象的时候帮我们序列化为Json字符串,取数据的时候帮我们反序列化为Java对象,但是这样Json序列化器会将类的class类型写入json结果中,存入Redis,会带来额外的内存开销。为了节省内存空间,我们实际并不会使用JSON序列化器来处理value,而是统一使用String序列化器,要求只能存储String类型的key和value,当需要存储Java对象时,手动完成。当我们再去进行close()时,并不是真正的关闭,而是将资源归还给Redis连接池。

buhuisuanfa的博客 1995

富客户端web技术_富客户端技术的类型

富客户端web技术 如果您是软件架构师并且需要通过网络使应用程序可用,那么您可能会问自己要使用哪种客户端技术。 在本文中,我将尝试列出以前使用的解决方案,然后详细介绍当今可用的解决方案。 历史 最初,应用程序仅部署在大型计算机上。 那里一切都发生了。 要使用该软件,您需要使用不良的用户界面,该界面恰当地称为被动终端。 它输出文本:如果幸运的话,您就有颜色了! 那是一个分层的时代。 ...

dlz00001的博客 767

客户端会话技术-Cookie

本篇文章讲解了 客户端会话技术 Cookie ,如何持久化保存,用一个案例来进行巩固

小白白O快起来 2570

客户端技术之抉择

<p class="MsoNormal" align="center" style="margin-top:6.0pt;mso-para-margin-top:.5gd;text-align:center;line-height:50%"><span style="font-size:15.0pt;line-height:50%;font-family:华文新魏">客户端技术之选择<p c

徐亦农的专栏 1314

Java 实现 WebSocket 客户端

通过以上步骤,你可以实现一个功能全面、稳定可靠的Java WebSocket客户端。从引入必要的库到处理各种事件和异常,每一步都需要仔细考虑和测试,以确保最终的解决方案能够满足项目的需求。

zru_9602的博客 5167

Java模拟WebSocket客户端

Java 的 WebSocket 库不止一个,本文使用 Java-WebSocket 来实现客户端 本文例子可以访问博主自己用 Java 写的 WebSocket 服务端 添加WebSocket库 <dependency> <groupId>org.java-websocket</groupId> <artifactId>Java-Web...

Steven的博客 1万+

客户端交互技术简介

随着网络应用的不断丰富,客户端交互技术也如雨后春笋一般,遍地开花。正是这些技术的支持,我们的互联网世界变得更加丰富多彩。一个浏览器上,不用说是简单的动画效果,就是一个Office应用也能顺畅的使用。所有这些都要感谢客户端交互技术的快速发展。甚至,现在的客户端交互技术的发展的趋势是,可以以浏览器为载体,也可以脱离浏览器以单独的应用形式存在。本文从microsoft,oracle,Adobe和w3C这4大企业或者机构组织的核心技术入手进行简单的分析。预示客户端交互技术为了的可持续发展性

竹君子之家 4162

客户端技术的一点思考

今天看到优快云上这么一篇《彻底放弃没落的MFC,对新人的忠告!》, 作为一个一直在Windows上搞客户端开发的C++程序员,几年前也有过类似的隐忧(参见落伍的感觉), 现在却有一些不同的想法。首先,个人职业发展是否成功, 技术只是其中一小块,尤其是在大公司, 更多的是依靠所谓的软实力。作为一个对技术有追求的工匠,我们下面重点说技术相关的。现在回头看计算机行业的发展,我们看到不同的发展阶段:...

weixin_34055787的博客 1389
上一篇: 哪里有UML相关的信息
下一篇: 使用 JSP 技术和 JDBC 技术访问基于 Web 的动态数据
java169
博客等级 码龄18年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值