zoukankan      html  css  js  c++  java
  • JNLP启动相关的东东

    本篇文章适合对Java Web Start和JNLP具有初步认识的读者。作者zeroBlack在前期做了大量资料搜集和学习,将以JNLP启动的运行过程为主线,介绍JNLP启动的相关配置和应用的其他技术。其中涉及的php相关内容可以在W3C School中找到详细解释。关于Lighttpd服务器的配置相关,可以在安装服务后查看自带的lighttpd.conf文件,内含配置示例。如果大家有进一步需要,请回复提出,zeroBlack会补充相应解释或代码。

    一、浏览器向服务器发送请求返回页面

    用户浏览器地址栏输入Java程序所在服务器IP,请求发送至服务器中的Web服务(zeroBlack的Web服务采用Lighttpd)。此时的Lighttpd已经配置好了Web服务的主目录和起始页,主目录中存放了Java应用相关的所有jar文件和Web请求的相关页面(包括起始页)。收到客户浏览器端的请求后,根据Lighttpd配置文件中的配置,首先定位到主目录,然后返回起始页(zeroBlack的起始页为index.php)。

    二、index.php跳转至JNLP文件生成页面

    Lighttpd服务器返回的index.php页面无实际内容,只扮演了类似指针的角色,页面直接跳转到JNLP文件的生成页面(zeroBlack的页面叫做Client.php),Client.php的内容严格遵循php脚本格式,全部内容包裹在<?php    ?>内部。首先是一连串header()函数,控制文件的过期时间、最后修改时间、缓存以及返回类型等。这里需要特别注意的是返回类型的控制为header("Content-Type: application/x-java-jnlp-file");表示页面返回给浏览器的内容为JNLP文件,针对这一返回类型需要在Lighttpd服务器配置文件中添加相应的MIME Type配置语句。

    三、Client.php的具体内容和执行过程

    Client.php脚本header()函数以下的代码都做了些什么?我们一起来看一下。(1)采用php自带的函数根据服务器名获取服务器IP地址,获取应用端口号(2)将jnlp文件的全部内容以字符串的形式赋给jnlp变量,文件内容中的Server和Port分别对应前面获得的值(3)判断主目录中是否存在jnlp文件(zeroBlack的文件叫做Client.jnlp),如果Client.jnlp存在,则删去(4)创建Client.jnlp文件,将指针指向文件起始位置,写入字符串jnlp至文件中(5)关闭文件

    四、浏览器下载jnlp文件,Java应用启动

    Client.php返回到浏览器的为jnlp文件类型的数据,浏览器将自动弹出下载界面,此时可根据不同浏览器的弹出界面,选择下载或直接打开。若选择下载,则需要双击后缀为.jnlp的文件以JNLP方式启动服务器存放的Java应用。若选择直接打开,则下载完成后自动启动Java应用。

    五、根据jnlp文件的配置加载jar文件

    用户通过Java Web Start启动Client.jnlp后,JWS根据jClient.nlp文件中的配置,找到服务器及应用端口,并加载主目录下的Java应用的相关jar文件,找到程序主函数,开始运行Java程序。

    至此,一个完整的JNLP启动Java应用的运行过程进行完毕。

  • 相关阅读:
    2017干货分享丨全球100款大数据工具汇总(附图)
    Hbase与Oracle比较(列式数据库与行式数据库)
    HBase底层存储原理
    关系数据库_关系代数的并行计算_数据库分类
    HBase与列存储
    ZooKeeper分布式过程协同技术详解2——了解ZooKeeper
    ZooKeeper分布式过程协同技术详解1——ZooKeeper的概念和基础
    facebook api之基本概念(中文)
    facebook api之Access Tokens之Business Manager System User
    facebook api之Access Tokens
  • 原文地址:https://www.cnblogs.com/zeroBlack/p/2582507.html
Copyright © 2011-2022 走看看