有些时候,我们需要往jnlp 中传入各种参数,但是jnlp 本身只是一个xml 描述文件,并不能接收参数,那该怎么办呢 ?
这里有2种方法,可以往jnlp 传入动态参数
方法一: 修改jnlp-servlet源码
JnlpFileHandler.java 中的specializeJnlpTemplate 方法
原先的specializeJnlpTemplate
java 代码
-
-
-
-
-
- private String specializeJnlpTemplate(HttpServletRequest request, String respath, String jnlpTemplate) {
- String urlprefix = getUrlPrefix(request);
- int idx = respath.lastIndexOf('/');
- String name = respath.substring(idx + 1);
- String codebase = respath.substring(0, idx + 1);
- jnlpTemplate = substitute(jnlpTemplate, "$$name", name);
- jnlpTemplate = substitute(jnlpTemplate, "$$codebase", urlprefix + request.getContextPath() + codebase);
- jnlpTemplate = substitute(jnlpTemplate, "$$context", urlprefix + request.getContextPath());
- return jnlpTemplate;
- }
修改后的
java 代码
- private String specializeJnlpTemplate
- (HttpServletRequest request, String respath, String jnlpTemplate) {
- String urlprefix = getUrlPrefix(request);
- System.out.println("urlprefix:" + urlprefix);
- System.out.println("respath:" + respath);
- int idx = respath.lastIndexOf('/');
- String name = respath.substring(idx + 1);
- System.out.println("name1:" + name);
- String codebase = respath.substring(0, idx + 1);
- jnlpTemplate
- = substitute(jnlpTemplate, "$$codebase",
- urlprefix + request.getContextPath() + codebase);
- jnlpTemplate = substitute(jnlpTemplate, "$$context",
- urlprefix + request.getContextPath());
- int index = name.indexOf("?");
- System.out.println("index:" + index);
- if (index != -1)
- name = name.substring(0, index);
- System.out.println("name2:" + name);
- jnlpTemplate = substitute(jnlpTemplate, "$$name", name);
- Enumeration enum1 = request.getParameterNames();
- while (enum1.hasMoreElements()) {
- String key = enum1.nextElement().toString();
- String value = request.getParameter(key);
- jnlpTemplate = substitute(jnlpTemplate, "$$" + key, value);
- }
- return jnlpTemplate;
- }
方法二
使用sevlet或者其他方式动态生成你的jnlp文件内容,然后直接输出到浏览器。
java 代码
- ...................
- response.setContentType("application/x-java-jnlp-file");
- PrintWriter out = response.getWriter();
- out.println("<?xml version=\"1.0\" encoding=\"GBK\"?>");
- ....................
分享到:
相关推荐
用户访问 JNLP 部署应用程序的站点,下载发布的应用程序,可以在在线运行,也可以通过 JNLP 的客户端离线运行已下载的应用程序。 一、JWS 简介 JWS 主要用来通过网络部署你的应用程序,它具有安全、稳定、易维护、...
JNLP文件是一种基于XML的配置文件,用于指定应用程序的元数据、资源需求以及运行时参数。其中,面向用户的元数据(如应用名称、图标和描述)、资源定位信息(哪些资源需从服务器获取)以及主类的指定,都是构成JNLP...
在Java编程中,日志记录是一项非常重要的任务,它帮助开发者追踪程序运行状态,调试问题,以及记录系统事件。在Swing应用中,我们同样可以使用Java内置的`java.util.logging`包来输出错误日志。这篇文档主要讨论了...
标题 "JNLP" 指的是 Java Network Launch Protocol,这是一种由Java平台提供的技术,用于在网络上启动和运行Java应用程序。JNLP是Java Web Start的一部分,允许用户在浏览器或者独立的桌面环境中无缝地下载、安装和...
5. **参数传递**:如果需要,JNLP文件也可以传递命令行参数给应用程序。 6. **更新策略**:JNLP支持自动或手动检查更新,使得开发者可以轻松地为用户提供新版本的应用程序。 7. **国际化**:通过在JNLP文件中定义...
本文将深入探讨如何在Web环境中检测用户系统上的JRE版本,并通过Java Network Launch Protocol (JNLP)文件直接启动应用程序。 首先,我们要了解如何检测用户的JRE版本。这通常通过JavaScript实现,因为JavaScript...
标题“JNLP ant webstart sign genkey sample”涉及到的是Java网络启动(Java Web Start,JWS)技术,以及如何使用Ant...这个过程对于任何希望发布通过Java Web Start技术运行的Java应用程序的开发者都是至关重要的。
Java Web Start(JNLP,Java Network Launch Protocol)是Java平台提供的一种技术,用于在网络上启动基于Java的应用程序。它提供了一种安全、便捷的方式,让用户能够通过点击一个链接来下载和运行Java应用,无需手动...
jenkins-jnlp-slave镜像
Java Swing是Java GUI(图形用户界面)库的一部分,主要用于创建桌面应用程序。在这个特定的场景中,我们有一个使用Java Swing编写的用户登录页面。这个登录页面允许用户输入他们的凭证,如用户名和密码,然后显示...
二、Java Web应用程序发布 对于Web应用程序,发布过程略有不同: 1. **构建WAR文件**:Web应用程序被打包成WAR(Web Application Archive)文件,包含Servlet、JSP、CSS、JavaScript等资源。 2. **应用服务器**:...
Java多彩动画程序.jar是一个基于Java技术开发的动态图形应用程序,它包含了HTML和JNLP(Java Web Start)文件,这表明该程序旨在通过网络进行分发和执行。下面将详细介绍这些概念及其相关知识点。 首先,Java是...
用jnlp开启一个服务,实现本地桌面远程共享
java哪里都好用,不会就用jnlp来下载JAVA吧,就用它来下载,很不错的下载软件
标题 "jfreechart-1.0.8-demo.jnlp" 指示的是一个基于JFreeChart库的1.0.8版本的演示程序,其中可能包含了展示JFreeChart功能的各种图表示例。JFreeChart是一个开源Java库,用于创建高质量的、可定制的图表,包括...
https://blog.csdn.net/weixin_46560589/article/details/128801979 文章《【Kubernetes 企业项目实战】06、基于 Jenkins+K8s 构建 DevOps 自动化运维管理平台(中)》测试 jenkins 的 CI/CD 实验所需资料文件!
### 利用 Java Web Start 发布 Java 程序 #### JWS——Java Web Start 的功能与优势 Java Web Start(简称 JWS)是 Sun Microsystems(现 Oracle)为解决 Java 应用程序部署和更新问题而开发的一项技术。它是 JSR-...
OneWireViewer软件的java运行版本,ONEWIREVIEWER JAVA WEB入门,可以将OneWireViewer作为Java™Web Start程序安装在Java支持的操作系统上。