【问题标题】:Get website URL for XML file JSP-Java获取 XML 文件 JSP-Java 的网站 URL
【发布时间】:2012-06-08 21:48:46
【问题描述】:

假设我已经创建了文件

String path = application.getRealPath("userSearchFolder");
String name = path + "/" + (String) session.getAttribute("username") + ".xml";
File file = new File(name);

稍后我想将其作为链接提供,例如

 <a href"<%=file.toURI()%>">File</a>

我得到的是目录路径而不是 url 路径 ->

file:/D:/Documents/NetBeansProjects/2012/GATE_Project/build/web/userSearchFolder/mjoraid.txt.xml

当它到达 Firefox 时,我将鼠标悬停在链接上,我看到的是

file:///D:/Documents/NetBeansProjects/2012/GATE_Project/build/web/userSearchFolder/mjoraid.xml

当我右键单击并选择复制链接位置并将其粘贴到 URL 中时,xml 文件会打开,但是当我单击链接时,没有任何反应。

我怎么能得到这样的链接

http://localhost:8080/GATE_Project/somepage/somepage/mjoraid.xml

【问题讨论】:

    标签: java html xml file jsp


    【解决方案1】:

    getRealPath 将提供 文件 系统路径(因此是“真实的”),而不是网络应用程序路径。所以你不能让它成为一个href。

    以下内容就足够了。

    <a href="/userSearchFolder/${userName}.xml">
    

    (当然,您冒着对此类可公开访问的 XML 文件进行数据挖掘的风险。)

    【讨论】:

      【解决方案2】:

      您可以使用 servlet 来提供文件。

      tutorial 展示了如何提供 pdf 文件(!)

      理论是一样的:

      • 您在 servlet 中加载文件
      • 设置任何必需的标头
      • 将数据写入响应

      ContentType 应该是“application/xml”。

      【讨论】:

        【解决方案3】:

        好的,我手动完成了,类似于我以前在 php 中的操作,创建一个包含网站主目录的变量。

          String searchFolderURL = "http://localhost:8080/GATE_Project/userSearchFolder/"; 
        

        然后

         <a href="<%=searchFolderURL + file.getName()%>" target="_blank"  >See original txt File </a>
        

        谢谢顺便说一句。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-01-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多