jnlp href属性中的url参数
我一直在使用url参数将参数传递给.jar应用程序的main方法。 在Windows 7上更新到最新的jre 7u7后,Java-web-start启动程序在启动文件时崩溃。
(JNLP download-servlet和jsp-page解析url-parameters并在参数中进一步输入它们)
jsp的有趣部分
...
所以这可能是也可能不是bug,
Q1:我一直在以正确的方式使用href属性吗?
Q2:任何聪明的想法如何解决问题?
我今天遇到同样的问题。 我没有在网上找到任何东西,但我试图更换’?’ 使用HTML实体’?’ 它的工作原理。
Oracle Bug数据库中添加了此问题:
我已经有一段时间寻找这个答案,从来没有得到具体的解决方案。 所以在这里我最终解决了它。 我将在下面提出解决方案。
当前情况:有一个简单的java应用程序从带有参数的浏览器启动。 现有的路由是browser – > index.html – >调用我的jnlp文件 – >调用我的java类的main方法。
需要的情况:现在用户会发送参数说,来自浏览器的用户名一直发送到java类的main方法。
解:
- 不要浪费时间尝试仅更改jnlp文件。
-
更改index.html如下:
-
将函数getUrlParameters()(google it)添加到index.html的javascript部分
-
通过调用usernameParam = getUrlParameters(“username”,“”,true)获取用户名的值
- 形成这样的URL =’nameOfYourJSPFile.jsp?username =’+ usernameParam
-
-
创建一个新的jsp文件(这是必须的),如:
<%@ page contentType="application/x-java-jnlp-file" %> <%@ page session="true" %> <% response.setDateHeader ("Expires", 0); //prevents caching at the proxy server // Getting the URL parameters from the request final String USERNAME_PARAM = "username"; String paramUsername = request.getParameter(USERNAME_PARAM); %>
"> Your resources... <%=paramUsername%> -
一旦形成此URL,您将发送到:IFrameDoc.location.replace(URL); 在同一index.html
您将在main方法的String [] args中获取传递的用户名值。 所以现在你可以检查param值是否存在,如果是,使用jsp文件形成URL或直接继续使用旧的jnlp文件。