Сборка jnlp из файла jsp
Я пытаюсь передать динамические аргументы через файлы jnlp, используя файл jsp для запуска моего приложения 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?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>
1 ответ
Решение
В вашем классе сервлетов получите параметры:
String username = req.getParameter("username");
String pass = req.getParameter("pass");
Если предположить, req
является HttpServletRequest
, если вы хотите безопасное приложение, то лучше как-нибудь обезопасить свой пароль.
Установите атрибуты в вашем запросе:
req.setAttribute(username, "username");
req.setAttribute(pass, "pass");
и отправьте свои атрибуты в jnlp
req.getRequestDispatcher("jnlp.jsp").forward(req, YOUR_HttpServletResponse);
В вашем jsp получите такие атрибуты:
${requestScope.username}