`
hotjava
  • 浏览: 181308 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

动态生成JNLP并用URL传递参数

阅读更多

如果web应用和C/S程序产生交互,在界面上最简单的处理办法就是通过URL来传递参数,但是参数必须要定义到JNLP文件的<argument/>里面去才行,如果想传递参数,就必须用servlet来生成JNLP文件。

首先,创建一个servlet来生成JNLP,类MakeJnlpServlet

java 代码
  1. public class MakeJnlpServlet extends HttpServlet {   
  2.   
  3.     private static final long serialVersionUID = 1L;   
  4.   
  5.     public void doGet(HttpServletRequest request, HttpServletResponse response)   
  6.             throws ServletException, IOException {   
  7.         String parameter1 = request.getParameter("soNbr");   
  8.            
  9.         String protocol = request.getScheme();   
  10.         String ip = request.getServerName();   
  11.         int port = request.getServerPort();   
  12.         String app = request.getContextPath();   
  13.         String href = "rmsInterface";   
  14.            
  15.         response.setContentType("application/x-java-jnlp-file");   
  16.         PrintWriter out = response.getWriter();   
  17.         out.println("<?xml version=\"1.0\" encoding=\"GBK\"?>");   
  18.         out.println("<jnlp spec=\"1.0+\" codebase=\"" + protocol + "://" + ip   
  19.                 + ":" + port + "/" + app + "\" href=\""+href+"\">");   
  20.            
  21.         out.println("<information>");   
  22.         out.println("  <title>rms</title>");   
  23.         out.println("  <vendor>cattsoft</vendor>");   
  24.         out.println("  <homepage href=\"index.html\"/>");   
  25.         out.println("  <description>Web Start Version</description>");   
  26.         out.println("  <description kind=\"short\">Web Start Version</description>");   
  27.         out.println("</information>");   
  28.         out.println("<security>");   
  29.         out.println("  <all-permissions/>");   
  30.         out.println("</security>");   
  31.         out.println("<resources>");   
  32.         out.println("  <j2se version=\"1.5+\"/>");   
  33.         out.println("  <jar href=\"trmsEJBClient-genkey.jar\"/>");   
  34.         out.println("  <jar href=\"rms_Lib-genkey.jar\"/>");   
  35.         out.println("  <jar href=\"weblogic-genkey.jar\"/>");   
  36.         out.println("</resources>");   
  37.            
  38.         out.println("<application-desc main-class=\"oss.rms.app.provision.rm.swing.view.main.SoView\">");        
  39.         out.println("<argument>"+ parameter1 +"</argument>");      
  40.         out.println("</application-desc>");     
  41.   
  42.         out.println("</jnlp>");   
  43.         out.flush();   
  44.         out.close();   
  45.   
  46.     }   
  47. }  

其中,String parameter1 = request.getParameter("soNbr");是接收传递过来的参数。
out.println("<argument>"+ parameter1 +"</argument>"); 是把参数作为webstart的参数。
String href = "rmsInterface"; 这个是此serlvet的URI

然后web.xml中声明一下,

  1. <servlet>      
  2.          <servlet-name>RmsInterface</servlet-name>      
  3.          <servlet-class>oss.rms.exinterface.MakeJnlpServlet</servlet-class>      
  4.          <load-on-startup>1</load-on-startup>      
  5.    </servlet>    
  6.   
  7. <servlet-mapping>  
  8.     <servlet-name>RmsInterface</servlet-name>  
  9.     <url-pattern>/rmsInterface</url-pattern>  
  10. </servlet-mapping>  
  11.   
  12. <mime-mapping>  
  13.     <extension>jnlp</extension>  
  14.     <mime-type>application/x-java-jnlp-file</mime-type>  
  15. </mime-mapping>  

 然后当ear部署好以后,就可以通过URI?soNbr=xx来传递参数了。

在UI端接受参数也很简单,获取main函数的args就可以了,如:

 

java 代码
  1. String parameter1 = "";   
  2. try {   
  3.     parameter1 = args[0];    
  4. catch(Exception e) {   
  5.     e.printStackTrace();   
  6.     System.out.println("接收参数异常");   
  7. }   
xml 代码
分享到:
评论
3 楼 石立川 2008-07-23  
谢谢,这帖子对我有帮助 !
2 楼 hotjava 2007-10-06  
out.println("<information>");
out.println("  <title>rms</title>");
out.println("  <vendor>cattsoft</vendor>");
out.println("  <homepage href=\"index.html\"/>");
out.println("  <description>Web Start Version</description>");
out.println("  <description kind=\"short\">Web Start Version</description>");
out.println("</information>");
out.println("<security>");
out.println("  <all-permissions/>");
out.println("</security>");
out.println("<resources>");
out.println("  <j2se version=\"1.5+\"/>");
out.println("  <jar href=\"trmsEJBClient-genkey.jar\"/>");
out.println("  <jar href=\"rms_Lib-genkey.jar\"/>");
out.println("  <jar href=\"weblogic-genkey.jar\"/>");
out.println("</resources>");

out.println("<application-desc main-class=\"oss.rms.app.provision.rm.swing.view.main.SoView\">");    
out.println("<argument>"+ parameter1 +"</argument>");
out.println("</application-desc>"); 

out.println("</jnlp>");
out.flush();
out.close();
1 楼 hotjava 2007-10-06  
貌似代码编辑器有问题阿...

相关推荐

    jnlp详细文档

    5. **参数传递**:如果需要,JNLP文件也可以传递命令行参数给应用程序。 6. **更新策略**:JNLP支持自动或手动检查更新,使得开发者可以轻松地为用户提供新版本的应用程序。 7. **国际化**:通过在JNLP文件中定义...

    jnlp 新手开发把手教

    JNLP 新手开发把手教 JNLP(Java Network Launching Protocol)是一种通过网络部署和发布 Java 程序的新技术,它可以用来发布 Application,也可以用来发布 Applet。JNLP 的主要特点是安全、稳定、易维护、易使用。...

    JNLP

    标题 "JNLP" 指的是 Java Network Launch Protocol,这是一种由Java平台提供的技术,用于在网络上启动和运行Java应用程序。JNLP是Java Web Start的一部分,允许用户在浏览器或者独立的桌面环境中无缝地下载、安装和...

    JNLP开发(JWS)

    JNLP应用程序之所以成为理想的选择,部分原因在于它们能够提供富客户端体验,如快速响应、拖放操作、动态升级和离线功能,同时保留了Web应用程序易于安装和自动分发新版本的优点。对于那些需要快速响应时间和丰富...

    jnlp例子

    - `href` 指定了JNLP文件的URL。 - `title` 和 `vendor` 描述了应用程序的名称和供应商。 - `j2se` 元素指定了运行此应用所需的Java版本。 - `jar` 元素包含了应用程序的主要JAR文件,`main="true"` 表示这是主应用...

    jenkins-jnlp-slave镜像

    jenkins-jnlp-slave镜像

    JNLP ant webstart sign genkey sample

    标题“JNLP ant webstart sign genkey sample”涉及到的是Java网络启动(Java Web Start,JWS)技术,以及如何使用Ant构建工具来签名JNLP应用。在Java Web Start中,JNLP(Java Network Launch Protocol)是用于启动...

    jnlp本地共享策略

    用jnlp开启一个服务,实现本地桌面远程共享

    1267342204836-integrated.jnlp

    java哪里都好用,不会就用jnlp来下载JAVA吧,就用它来下载,很不错的下载软件

    jfreechart-1.0.8-demo.jnlp

    标题 "jfreechart-1.0.8-demo.jnlp" 指示的是一个基于JFreeChart库的1.0.8版本的演示程序,其中可能包含了展示JFreeChart功能的各种图表示例。JFreeChart是一个开源Java库,用于创建高质量的、可定制的图表,包括...

    jenkins-jnlp.tar.gz

    https://blog.csdn.net/weixin_46560589/article/details/128801979 文章《【Kubernetes 企业项目实战】06、基于 Jenkins+K8s 构建 DevOps 自动化运维管理平台(中)》测试 jenkins 的 CI/CD 实验所需资料文件!

    maven-jnlp-plugin-1.4.jar

    maven-jnlp-plugin-1.4.jar

    OneWireViewer.jnlp

    OneWireViewer软件的java运行版本,ONEWIREVIEWER JAVA WEB入门,可以将OneWireViewer作为Java™Web Start程序安装在Java支持的操作系统上。

    jfreechart-1.0.11-demo.jnlp

    提供了使用jfreechar能完成的15大类的图,比如柱状图,饼图等。

    jviewer.jnlp

    java工具包jviewer

    Web程序中的JRE版本检测及JNLP文件的直接打开

    本文将深入探讨如何在Web环境中检测用户系统上的JRE版本,并通过Java Network Launch Protocol (JNLP)文件直接启动应用程序。 首先,我们要了解如何检测用户的JRE版本。这通常通过JavaScript实现,因为JavaScript...

    androidscreencast.jnlp

    https://xsavikx.github.io上的一个电脑操作手机并可以录屏的小工具,需要安装jdk

    tutorial.jnlp

    javafx,java,脚本语言,新技术,例子,很有前景的技术语言,

Global site tag (gtag.js) - Google Analytics