动态生成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 代码
JSP+JavaBean+Servlet的框架demo 这是一个非常好的JSP+JavaBean+Servlet的例子,还包括Mysql数据库。开发环境是myeclipse。觉得这个例子很好,供大家共同学习 立即下载

相关推荐

FreeSWITCH实战:5分钟搞定阿里云SDM(MRCP-SERVER)语音机器人搭建(含Docker部署技巧)

本文详细介绍了如何利用FreeSWITCH与阿里云SDM(MRCP-SERVER)快速搭建高可用语音机器人,包括Docker部署技巧、系统调优及高可用架构设计。通过实战案例和优化建议,帮助开发者5分钟内完成部署,提升语音交互系统的性能和稳定性。

stone的博客 504

ContestAppletProd.jnlp 被Java 安全阻止解决措施

最近想要开始练习算法,开始玩 topcoder,结果下载完客户端打开后一直显示被 Java 安全阻止,目前已解决,步骤如下:一、打开 Java 面板            Mac用户在左上角的苹果处点系统偏好设置,Windows 用户在控制面板中选择。二、点'安全'选项卡三、在例外站点列表中输入...

qq_40840069的博客 1653

最新扣子(coze)案例:在coze上用DeepSeek+私有数据库、知识库,创建你的专属智能体

Gartner预测,到2026年,70%的企业将通过Al知识库实现「组织记忆外化」。数字化时代,数据已成为企业发展的核心资产。我们通过人工智能将知识库从“静态存储"升级为“智能服务”。让"沉睡宝藏"焕发新生,助力企业突破数据困局。

weixin_72689845的博客 2163

访问JSP文件或者Servlet文件时提示下载的解决方法

在访问JSP文件或者Servlet的时候,如果提示下载并保存问题的解决方法。 如下图所示: 同样的程序有的浏览器出错,有的浏览器不出错。错误的原因是设置MIME类型的代码有误。 如果是JSP文件,查看文件头: 复制代码 代码如下: 如果是Servlet文件,查看: 复制代码 代码如下: response.setContentType("text/h

920

告别手动标注!PDMS NakiToolkit插件安装与初体验:以Pipeline工具为例

本文详细介绍了PDMS NakiToolkit插件的安装与使用,特别是其Pipeline工具如何通过自动化标注和材料统计功能大幅提升三维工厂设计效率。从环境准备到实战演示,帮助工程师告别繁琐的手动标注工作,实现项目交付周期的大幅缩短。

weixin_30047059的博客 350

【AI智能体】图像处理-生成营销 Banner 图

生成营销 Banner 图是一款用于制作营销图片的智能体,它可以根据指定的营销活动内容,快速生成活动 Banner 图片,降低活动运营成本、提高制图效率。

AI创变工坊,和1000万新个体创业者一起成长!愿大家都能跟上时代的洪流,不被社会淘汰,愿大家的生活工作收入都能具备竞争力! 1175

JNLP浏览器缓存问题

在使用java web start时,浏览器会对jnlp进行缓存,致使访问的总是原来的jnlp文件,而不是最新的。 解决:清除浏览器缓存

星星的技术专栏 2901

用FPGA在HDMI上显示自定义字符:从COE文件到OSD叠加的保姆级教程

本文详细介绍了如何在FPGA上实现HDMI视频流的OSD字符叠加技术,从COE文件生成到动态区域控制的完整流程。通过Verilog代码示例和实战技巧,帮助开发者掌握字符ROM设计、像素坐标追踪和动态混合等核心技术,适用于视频监控、系统状态显示等应用场景。

weixin_28720767的博客 231

db19c使用多租户安装Forms and Reports 12.2.1.4

java -jar D:\rj\fmw_12.2.1.4.0_infrastructure.jar D:\Oracle\Middleware\Oracle_Home\user_projects\domains\lh_domain\bin 复制Start WLS_FORMS重命名为,REPORTS 测...

weixin_39568073的博客 946

第3章 zynq MII转GMII的配置和EMIO UART0的配置

本文介绍了在Vivado工程中实现MII转GMII接口适配的过程,同时配置EMIO UART0接口。主要内容包括:修改PS IP核添加UART0接口,使用concat IP核进行信号整合,调整GMII信号引脚连接,添加约束文件定义引脚映射,并最终生成bit流文件。通过详细的操作截图和TCL约束代码,展示了从硬件配置到生成可编程文件的完整流程,为Zynq平台开发提供了实用参考。

qq_36517072的博客 903

31、工程中不确定性量化与优化的全面解析

本文全面解析了工程中不确定性量化与优化的关键方法。针对数据充足与不足两种情况,分别介绍了概率理论和非概率方法在不确定性建模中的应用;系统阐述了采样方法、FORM/SORM、泰勒级数近似等不确定性传播技术;深入比较了RBDO与RDO两种主流优化框架的原理、步骤及适用场景,并通过两杆桁架案例展示了具体实现过程。文章旨在为工程师提供一套完整的从不确定性分析到优化设计的方法论,提升工程系统的可靠性与稳健性。

php55的博客 121

swing 程序发布(二)jnlp参数接收

 有些时候,我们需要往jnlp 中传入各种参数,但是jnlp 本身只是一个xml 描述文件,并不能接收参数,那该怎么办呢 ?    这里有2种方法,可以往jnlp 传入动态参数    方法一: 修改jnlp-servlet源码 JnlpFileHandler.java 中的specializeJnlpTemplate 方法  原先的specializeJnlpTemplate java 代码 ...

胖胖熊 492

Android系统修改驱动固定USB摄像头节点绑定前后置摄像头

Android系统中usb摄像头节点会因为摄像头所接的usb口不同或者usb设备识别顺序不一样而出现每次开机生成的video节点不一样的问题。由于客户app调用摄像头时,需要固定摄像头的节点。因此需要针对前面的情况做处理。

Android系统开发笔记 2250

Kivy Button按钮全面解析:机制、样式定制与常见问题排查

在跨平台GUI开发中,Kivy作为一套基于Python的现代UI框架,以其灵活的声明式KV语言和事件驱动模型吸引了不少开发者。而Button控件作为交互的基础,其底层由ButtonBehavior与Label组合而成,涉及背景图叠加、事件冒泡、状态切换等机制,理解这些设计比硬记API更重要。从纯Python搭建到KV声明式布局,从默认灰底到透明圆角完全自定义,再到防连点、长按、动态创建等交互进阶,Kivy按钮开发有一套完整的工程实践路径。许多常见问题如点击无反应、样式残留、size失效,多源于事件被拦截或背

weixin_34128839的博客 190

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

解决Ant Sword证书过期连接失败:HTTPS自签名证书机制与修复方案

HTTPS协议通过SSL/TLS证书实现通信加密与身份验证,是保障Web应用安全传输的基石。其核心原理基于非对称加密与数字证书链的信任机制,确保数据在传输过程中不被窃取或篡改。在渗透测试与安全运维领域,这一技术对于保护管理通道、避免流量嗅探具有关键价值。当使用Ant Sword等Web管理工具时,服务端常采用自签名证书建立HTTPS连接。若证书过期,客户端将抛出“cert_has_expired”错误导致连接中断。本文针对这一高频问题,从证书生成机制切入,详解服务端证书动态生成逻辑与默认短有效期特性,进而提

weixin_34204722的博客 314

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

从安装到实战:Jenkins与DevOps自动化流水线全解析

持续集成与持续交付(CI/CD)是现代软件工程的核心实践,旨在通过自动化手段将代码变更快速、安全地交付到生产环境。其底层原理依赖于一套可重复、可审计的流水线机制,将代码构建、测试、部署等环节标准化。在众多实现工具中,Jenkins凭借其丰富的插件生态和灵活的Pipeline语法,成为连接开发、测试与运维的自动化中枢,大幅提升交付效率并降低人为失误风险。无论是个人项目还是团队协作,在Windows或Linux环境下,借助Docker容器化部署Jenkins,可轻松实现与GitLab联动、权限管控以及Java

weixin_34392435的博客 298

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

尚硅谷云原生实战学习笔记

尚硅谷云原生实战学习笔记,学吧,学无止境。

李英俊小朋友 1670

解决在浏览器中打开java文件jnlp报错“该文件没有程序与之关联来执行该操作...”

解决方法:

xinbumocun的专栏 1万+

访问Servlet文件时提示下载文件的解决方法

出现问题: resp.setContentType("test/html;charset=utf-8"); 注意注意:很容易写错的把text/html写错成test/html 解决方法: resp.setContentType("text/html;charset=utf-8"); text不要写错成test ...

爱学习的1024 928

UserServlet登录按钮每次点击都会下载一个文件

UserServlet登录按钮每次点击都会下载一个文件

m0_52919388的博客 323

IE浏览器彻底停用对Oracle EBS用户的影响与解决方案

IE浏览器彻底停用对Oracle EBS用户的影响与解决方案

kikiwhq的专栏 2230

java打开jnlp_jnlp文件怎么打开

jnlp文件怎么打开  可用java程序打开,首先要确定你已经装好了jre改好了环境变量然后,开始——运行——cmdjavaws D:\××××\××××\××××.jnlp如果你的jre装的没有问题,那你的屏幕上就应该出现了java程序,并开始下载啦eclipse系列软件最新版本下载jnlp是什么JNLP(Java Network Launching Protocol )是java提供的一种可以...

weixin_29263201的博客 4441

JNLP的使用及碰到的一些问题

JNLP(Java Network Launching Protocol )是java提供的一种可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url连接打开一个java应用程序。 Java桌面应用程序以JNLP 的方式发布,如果版本升级后,不需要再向所有用户发布版本,只需要更新服务器的版本,这就相当于让java应用程序有了web应用的优点。 [以上内容摘自百度搜索,侵...

蜡笔小达新的博客 4630

有关JNLP中传SESSIONID为参数的问题

现有项目组用SUN JDK1.5中自带的示例:jnlp-servlet作为WEBSTART版本管理的SERVLET。它可以很好的实现JNLP相关资源(JAR,图片等)的基于版本的管理和增量更新。并有几个类似$$codebase,$$name的可替换关键字。(原来写了一个简单的servlet,可以实现软编码,但没法提供灵活的版本控制)但现有项目的需求更高一些,即,JNLP中需要传更多的参数,比如,服

mudboy的专栏 2219

Oracle EBS Java Web Start 登录:原理、配置与实战

本文聚焦 Oracle EBS 中 Java Web Start(JWS)登录技术,解析其基于 JNLP 文件的认证原理与会话管理机制,涵盖环境准备、JWS 服务启用、JNLP 配置等核心流程。助力开发者掌握 JWS 登录配置,实现跨浏览器高效安全访问 EBS Forms 应用。

u012139209的专栏 1704

servlet 理解 --servlet笔记

http  80 smtp 25 pop3 110 ftp  23 https 443 Host里面 改动了server.xml文件后要重启Tomcat服务器。 默认的web应用 请求头/消息头: Accept:告诉服务器,客户机支持的数据类型 Accept-Charset:用于告诉服务器,客户机支持的编码类型 Accept-En

u012453193的专栏 2214
上一篇: ant开堆栈内存
下一篇: ORACLE常用
oni5211
博客等级 码龄12年 0粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值