首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JSP的动态JNLP

使用JSP的动态JNLP
EN

Stack Overflow用户
提问于 2018-11-13 22:27:27
回答 1查看 372关注 0票数 0

我有一个JSP文件,它在通过超链接调用时返回一个JNLP文件。但是它以jsp (xxx.jsp而不是xxx.jnlp)文件的形式下载,尽管内容是预期的jnlp。

以下是我的JSP

代码语言:javascript
复制
    <%    
      response.setHeader("Pragma", "no-cache");
      response.setHeader("Expires", "0");
      response.setContentType("application/x-java-jnlp-file");                            
      response.setHeader("Cache-Control", null);
      response.setHeader("Set-Cookie", null);
      response.setHeader("Vary", null);

      // An installer must reply with the version number for a given install
      if (response.containsHeader("x-java-jnlp-version-id"))
        response.setHeader("x-java-jnlp-version-id", "WASClient6.1.0");               
      else
        response.addHeader("x-java-jnlp-version-id", "WASClient6.1.0");
      String codeBase = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ request.getContextPath() + "/";
%>

<?xml version="1.0" encoding="utf-8"?> 
<jnlp spec="1.0+" codebase="<%=codeBase %>">
        <information>
                <title>XXX</title>
        </information>
        <security>
                <all-permissions/>
        </security>
        <resources>

        </resources>
        <application-desc main-class="TestApp">
        </application-desc>
</jnlp>

以下是生成的jsp

代码语言:javascript
复制
 <?xml version="1.0" encoding="utf-8"?> 
<jnlp spec="1.0+" codebase="<%=codeBase %>">
        <information>
                <title>XXX</title>
        </information>
        <security>
                <all-permissions/>
        </security>
        <resources>

        </resources>
        <application-desc main-class="TestApp">
        </application-desc>
</jnlp>

知道我做错了什么吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-13 22:42:15

您确实不应该使用scriptlet,但是如果需要,您应该从scriptlet生成jnlp文件,然后对创建的jnlp文件执行一个response.redirect。

代码语言:javascript
复制
 ServletContext servletContext = session.getServletContext();
 String localDir = servletContext.getRealPath("").replace('\\', '/');
 File jnlp = new File(localDir + "something.jnlp");
 FileWriter fw = new FileWriter(jnlp);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(//contents of jnlp file);
 response.sendRedirect(jnlp.getName());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53290462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档