2017-08-17 119 views
2

我试图通过使用jsp文件启动我的java应用程序的jnlp文件传递动态参数。然而,我对JWS真的很陌生,所以任何帮助将不胜感激。从jsp文件构建jnlp

我的问题是,test.jnlp中应该如何接收用户名参数并将参数传递给java applciation?我读过很多其他帖子,但我仍然无法让我的应用程序收到参数。

目前代码:

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> 

回答

0

在你的servlet类获取参数:

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} 
+0

感谢您的帮助!我想我需要阅读jnlp以及servlet如何与其他servlet交互以充分利用它。 –