JNLP API(Core Java 1)

通过JNLP API能够使应用程序运行在沙箱中同时还能以安全的方式访问本地资源,如:从本地加载文件或保存文件至本地。应用不能查看文件系统也不能指定文件的名字,而是通过弹出一个文件对话框让用户选择文件。在文件对话框弹出以前会有一个警告通知用户是否允许程序做进一步的处理,API不给于程序访问File对象的权利,程序员只能通过给定的工具实现"打开文件"和"保存文件"的动作,但是大部分系统信息对不信任的应用是隐藏起来的。

 

JNLP API提供了如下服务:

1.加载和保存文件

2.访问剪贴板

3.打印

4.下载文件

5.在默认的浏览器中显示文档信息

6.存储或获取持久性配置信息

7.确保只有一个应用实例在运行(1.5新增) 要使用这些API必须将javaws.jar导入,该jar文件在jre/lib子目录下。

 

传统的网页中嵌入Applet的形式不能及时获取应用更新,因为在第一次执行Applet的时候所有用到的相关资源(类和图像等其他文件)都会下载到本地特定的目录以便缓存,当再次执行Applet时实际是执行缓存在本地的文件,从而客户端与服务器在应用更新上不能保持同步。

而Java Web Start则可以避免该问题,他在每次执行程序时会首先在本地查找并查看服务器端是否进行了更新从而能够保证执行的程序总是最新的。

Java Web Start特性:

1.JWS应用一般通过浏览器发布,只要JWS应用下载到本地就可以启动而不再需要浏览器;

2.JWS应用不使用浏览器的Java实现,浏览器只是在加载JWS应用程序描述符时启动一个外部应用,这与启动Adobe Acrobat或RealAudio辅助应用程序类似;

3.JWS应用不在浏览器窗口内,而是显示在浏览器外部一个属于自己的框架中;

4.数字签名应用程序可以被赋予访问本地机器的任意权利。未签名的应用只能运行在沙箱中,这样可以阻止具有潜在危险的操作。

 

通过JWS发布的应用:将应用打包到一个或多个jar文件中,再创建一个Java Network Launch Protocol格式的描述符文件,将这些文件放在Web服务器中。

 

沙箱:Java安全模型,安全管理器是关键。

沙箱中程序的限制:

1.不能运行任何本地的可执行程序;

2.不能从本地文件系统中读取任何信息,也不能往本地文件系统中写入任何信息;

3.不能查看除Java版本信息等少数无害的操作系统详细信息外的其他信息:如用户名,email地址等;

4.远程加载的程序不能与除下载程序所在服务器之外的任何其他主机通信,这个服务器叫源主机:远程代码只能与家人通话。这将确保用户不会被代码探查内部的网络资源。(Java Se6中JWS应用可以与其他网络连接但必须征得程序用户的同意);

5.所有弹出式窗口都带有警告信息。

 

你可能感兴趣的:(java,应用服务器,Web,浏览器,网络应用)