从 jsp 文件构建 jnlp

Building a jnlp from a jsp file

我正在尝试使用 jsp 文件通过 jnlp 文件传递​​动态参数以启动我的 java 应用程序。但是我真的是 JWS 的新手,所以我们将不胜感激。

我的问题是,test.jnlp 中应该包含什么才能接收用户名参数并将参数传递给 java 应用程序?我已经阅读了许多其他帖子,但我仍然无法让我的应用程序接收参数。

当前代码:

JNLP.JSP

   <% 
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "0");
response.setHeader("Content-Disposition", "filename=\"bb.jnlp\";");
response.setContentType("application/x-java-jnlp-file");
%>
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" 
      codebase=<%=request.getScheme() + "://"+ request.getServerName() + ":" 
+ 
request.getServerPort()+ request.getContextPath() + "/" %> 
      href="test.jnlp&#063;username=<%=request.getParameter("username")%>">
    <information>
        <title>ProBuilder</title>
        <vendor>pAtoms</vendor>
        <homepage href="http://localhost:8080/" />
        <description>ProBuilder</description>
    </information>
    <security>
    <sandbox/>
    </security>
    <resources>
        <j2se version="1.6+" />
        <jar href="ProBuilder.jar" />
    </resources>
    <application-desc main-class="adam.Adam" >
       <argument><%=request.getParameter("username")%></argument>
    </application-desc>
</jnlp>

在你的servlet中class获取参数:

String username = req.getParameter("username");
String pass = req.getParameter("pass");

假设 reqHttpServletRequest,如果您想要安全的应用程序,那么最好以某种方式保护您的密码。

在您的请求中设置属性:

req.setAttribute(username, "username");
req.setAttribute(pass, "pass");

并将您的属性分派给 jnlp

req.getRequestDispatcher("jnlp.jsp").forward(req, YOUR_HttpServletResponse);

在你的 jsp 中获取这样的属性:

${requestScope.username}