2017-08-17 121 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交互以充分利用它。 –