程序片的局限

出于安全缘故,程序片十分受到限制,并且有很多的事我们都不能做。您一般会问:程序片看起来能做什么,传闻它又能做什么:扩展浏览器中WEB页的功能。自从作为一个网上冲浪者,我们从未真正想了解是否一个WEB页来自友好的或者不友好的站点,我们想要一些可以安全地行动的代码。所以我们可能会注意到大量的限制:
(1) 一个程序片不能接触到本地的磁盘。这意味着不能在本地磁盘上写和读,我们不想一个程序片通过WEB页面阅读和传送重要的信息。写是被禁止的,当然,因为那将会引起病毒的侵入。当数字签名生效时,这些限制会被解除。
(2) 程序片不能拥有菜单。(注意:这是规定在Swing中的)这可能会减少关于安全和关于程序简化的麻烦。我们可能会接到有关程序片协调利益以作为WEB页面的一部分的通知;而我们通常不去注意程序片的范围。这儿没有帧和标题条从菜单处弹出,出现的帧和标题条是属于WEB浏览器的。也许将来设计能被改变成允许我们将浏览器菜单和程序片菜单相结合起来——程序片可以影响它的环境将导致太危及整个系统的安全并使程序片过于的复杂。
(3) 对话框是不被信任的。在Java中,对话框存在一些令人难解的地方。首先,它们不能正确地拒绝程序片,这实在是令人沮丧。如果我们从程序片弹出一个对话框,我们会在对话框上看到一个附上的消息框“不被信任的程序片”。这是因为在理论上,它有可能欺骗用户去考虑他们在通过WEB同一个老顾客的本地应用程序交易并且让他们输入他们的信用卡号。在看到AWT开发的那种GUI后,我们可能会难过地相信任何人都会被那种方法所愚弄。但程序片是一直附着在一个Web页面上的,并可以在浏览器中看到,而对话框没有这种依附关系,所以理论上是可能的。因此,我们很少会见到一个使用对话框的程序片。
在较新的浏览器中,对受到信任的程序片来说,许多限制都被放宽了(受信任程序片由一个信任源认证)。
涉及程序片的开发时,还有另一些问题需要考虑:
■程序片不停地从一个适合不同类的单独的服务器上下载。我们的浏览器能够缓存程序片,但这没有保证。在Java 1.1版中的一个改进是JAR(Java ARchive)文件,它允许将所有的程序片组件(包括其它的类文件、图像、声音)一起打包到一个的能被单个服务器处理下载的压缩文件。“数字签字”(能校验类创建器)可有效地加入每个单独的JAR文件。
■因为安全方面的缘故,我们做某些工作更加困难,例如访问数据库和发送电子邮件。另外,安全限制规则使访问多个主机变得非常的困难,因为每一件事都必须通过WEB服务器路由,形成一个性能瓶颈,并且单一环节的出错都会导致整个处理的停止。
■浏览器里的程序片不会拥有同样的本地应用程序运行的控件类型。例如,自从用户可以开关页面以来,在程序片中不会拥有一个形式上的对话框。当用户对一个WEB页面进行改变或退出浏览器时,对我们的程序片而言简直是一场灾难——这时没有办法保存状态,所以如果我们在处理和操作中时,信息会被丢失。另外,当我们离开一个WEB页面时,不同的浏览器会对我们的程序片做不同的操作,因此结果本来就是不确定的。

时间: 2024-12-09 21:23:44

程序片的局限的相关文章

ASP.NET与PHP构建web程序的方法的优缺点

比较这两种最流行的构建 web 应用程序的方法的优缺点 如今当提到 Web 开发时,您有许多选择.这些方法中许多都涉及到预处理 - 即,利用特定的标记将代码嵌入到 HTML 页面中,这些标记告诉预处理器,它们包含代码,并且应对它们作出处理.与 CGI 非常相似,这些代码在服务器上运行,并返回一些内容,这些内容表现为发回给浏览器的结果 HTML 页面的部分外观.开放源代码脚本语言 PHP 和 Microsoft 的 ASP.NET 框架中的语言都属于这种类型:JavaServer Pages (J

C# 编程语言的未来功能

编程 C# 编程语言的未来功能 Prashant SridharanMicrosoft Corporation 2003年3月 适用于:   Microsoft Visual C#(TM) 摘要:Microsoft Corporation 正在开发 C# 语言的下一个主要版本.本文介绍了四种主要的新功能,即泛型.迭代程序.匿名方法和局部类型. 目录简介 泛型 迭代程序 匿名方法 局部类型 符合标准 可用性 更多信息 简介C# 是创新性的新式编程语言,它巧妙地结合了最常用的行业语言和研究语言中的功

用Groovy进行Ant脚本编程

Ant 作为 Java 项目构建工具的普遍性和实用性是无法超越的.即使是 Maven 这个构建领域的新锐工具,也要把自己的许多强大能力归功于从 Ant 学到的经验.但是,这两个工具有共同的不足之处:扩展性.即使 XML 的可移植性在促进 Ant 和 Maven 走向开发前端上扮演了主要角色,XML 作为构建配置格式的角色仍然或多或少地限制了构建过程的表现力. 例如,虽然在 Ant 和 Maven 中都有条件逻辑,但是用 XML 表示有些繁琐.而且,虽然可以定义定制任务来扩展 Ant 的构建过程,

③JSP经典回顾

jsp概述 jsp实际就是一个高级servlet,比servlet容易很多.jsp/servlet在jsp容器中运行.例如,Tomcat就是一个Servlet/jsp容器. 关于tomcat:[传送门] 隐式对象 JSP隐式对象是Web容器加载的一组类的实例.它是可以直接在JSP页面使用的对象.分为4个主要类别: 输入和输出对象:控制页面的输入和输出(request.response.out). 作用域通信对象:检索与JSP页面的Servlet相关的信息(session.application.

php asp.net 比较 [推荐]_相关技巧

这些标记告诉预处理器,它们包含代码,并且应对它们作出处理.与 CGI 非常相似,这些代码在服务器上运行,并返回一些内容,这些内容表现为发回给浏览器的结果 HTML 页面的部分外观.开放源代码脚本语言 PHP 和 Microsoft 的 ASP.NET 框架中的语言都属于这种类型:JavaServer Pages (JSP) 和 Perl/Mason 也以这种方式运行. 在本文中,我将重点讲述 PHP - Oracle 已选择合并到其产品中的技术 - 和 ASP.NET.我将概述两者的各种优势和弱

AlphaGo 是如何被训练成围棋之神的?

编者按:本文作者为彩云天气创始人兼 CEO 袁行远,由雷锋网(公众号:雷锋网)整理自其知乎专栏,获授权发布. 袁行远:19年前计算机击败国际象棋冠军卡斯帕罗夫的情景还历历在目,现在计算机又要来攻克围棋了吗? 虚竹在天龙八部里自填一子,无意中以"自杀"破解"珍笼"棋局,逍遥子方才亲传掌门之位.难道以后"阿尔法狗"要出任逍遥派掌门了? 1933年,东渡日本19岁的吴清源迎战当时的日本棋坛霸主.已经60岁的本因坊秀哉,开局三招即是日本人从未见过的三三.

你所未知的3种Node.js代码优化方式_node.js

Node.js 程序的运行可能会受 CPU 或输入输出操作的限制而十分缓慢.从 CPU 角度看,程序运行缓慢的典型原因之一就是未经优化的「热点路径」(一段经常被访问的代码).从输入输出角度看,程序运行速度的局限可能是受底层操作系统影响,也可能是出于 Node 本身的故障.更或者,一个运行缓慢的程序可能跟 Node 本身没有任何关系,问题在于外部资源,比如数据库查询或是 API 调用缓慢,未经过优化处理. 在本文中,我们将重点识别并优化代码库中会导致 CPU 繁重运行的操作.同时,将探讨生产应用的

你所未知的3种 Node.js 代码优化方式

Node.js 程序的运行可能会受 CPU 或输入输出操作的限制而十分缓慢.从 CPU 角度看,程序运行缓慢的典型原因之一就是未经优化的「热点路径」(一段经常被访问的代码).从输入输出角度看,程序运行速度的局限可能是受底层操作系统影响,也可能是出于 Node 本身的故障.更或者,一个运行缓慢的程序可能跟 Node 本身没有任何关系,问题在于外部资源,比如数据库查询或是 API 调用缓慢,未经过优化处理. 在本文中,我们将重点识别并优化代码库中会导致 CPU 繁重运行的操作.同时,将探讨生产应用的

提高数据中心资源利用率的绿色技术

在http://www.aliyun.com/zixun/aggregation/13616.html">新一代数据中心中,为解决传统数据中心的IT资源利用率十分低的问题,CIO们都在不停地选择高效的设备,寻求更高效的系统,以及更多的探索提升数据中心资源利用率的绿色技术.而广泛采用虚拟化技术和系统合并,有助于打破孤岛效应,共享IT资源,提高资源利用率,降低成本,使IT 基础设施具备更高的灵活性,并确保供需平衡.本文就和大家一起分享这两种方法. 合并:提高能效的关键 整合简单的说就是将不同系