如果web应用和C/S程序产生交互,在界面上最简单的处理办法就是通过URL来传递参数,但是参数必须要定义到JNLP文件的<argument/>里面去才行,如果想传递参数,就必须用servlet来生成JNLP文件。
首先,创建一个servlet来生成JNLP,类MakeJnlpServlet
java 代码
- public class MakeJnlpServlet extends HttpServlet {
-
- private static final long serialVersionUID = 1L;
-
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- String parameter1 = request.getParameter("soNbr");
-
- String protocol = request.getScheme();
- String ip = request.getServerName();
- int port = request.getServerPort();
- String app = request.getContextPath();
- String href = "rmsInterface";
-
- response.setContentType("application/x-java-jnlp-file");
- PrintWriter out = response.getWriter();
- out.println("<?xml version=\"1.0\" encoding=\"GBK\"?>");
- out.println("<jnlp spec=\"1.0+\" codebase=\"" + protocol + "://" + ip
- + ":" + port + "/" + app + "\" href=\""+href+"\">");
-
- 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();
-
- }
- }
其中,String parameter1 = request.getParameter("soNbr");是接收传递过来的参数。
out.println("<argument>"+ parameter1 +"</argument>"); 是把参数作为webstart的参数。
String href = "rmsInterface"; 这个是此serlvet的URI
然后web.xml中声明一下,
- <servlet>
- <servlet-name>RmsInterface</servlet-name>
- <servlet-class>oss.rms.exinterface.MakeJnlpServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>RmsInterface</servlet-name>
- <url-pattern>/rmsInterface</url-pattern>
- </servlet-mapping>
-
- <mime-mapping>
- <extension>jnlp</extension>
- <mime-type>application/x-java-jnlp-file</mime-type>
- </mime-mapping>
然后当ear部署好以后,就可以通过URI?soNbr=xx来传递参数了。
在UI端接受参数也很简单,获取main函数的args就可以了,如:
java 代码
- String parameter1 = "";
- try {
- parameter1 = args[0];
- } catch(Exception e) {
- e.printStackTrace();
- System.out.println("接收参数异常");
- }
xml 代码
分享到:
相关推荐
jnlp开发手把手教,特别适合新接触jnlp的开发着参考,根据步骤能够自己开发
jenkins-jnlp-slave镜像
用jnlp开启一个服务,实现本地桌面远程共享
java哪里都好用,不会就用jnlp来下载JAVA吧,就用它来下载,很不错的下载软件
帮助了解JNLP,可以进行JWS的开发,介绍得比较详细。
NULL 博文链接:https://aaron-ch.iteye.com/blog/371037
基于JNLP技术的客户端上传文件的实现,唐游,刘辰,本文介绍了JNLP技术及其应用背景,同时应用了java数字签名实现对客户端文件系统的访问,并生成相应的文件列表,实现了利用JNLP技术的
本问就jnlp的入门级应用做了讲解,笔者用了自己的所作的实例为大家做演示
maven-jnlp-plugin-1.4.jar
OneWireViewer软件的java运行版本,ONEWIREVIEWER JAVA WEB入门,可以将OneWireViewer作为Java™Web Start程序安装在Java支持的操作系统上。
提供了使用jfreechar能完成的15大类的图,比如柱状图,饼图等。
java工具包jviewer
纯英文,但是比较简单。学习jws部署可以看看
demo 和sourcecode都在
博文链接:https://cddcdd.iteye.com/blog/228985
这个人很懒,什么也没有留下
https://xsavikx.github.io上的一个电脑操作手机并可以录屏的小工具,需要安装jdk
javafx,java,脚本语言,新技术,例子,很有前景的技术语言,
构建 JNLP-Builder 要构建 jnlp-builder.war,请从根目录执行 Maven 命令: mvn clean package 然后将 jnlp-builder.war 放在一个 Servlet 容器(Tomcat、JBoss...)的 deploy 文件夹中 如何使用 JNLP-Builder ...
AgileAutovue (1).jnlp