Java 在jsp中单击超链接时未打开日志文件

Java 在jsp中单击超链接时未打开日志文件,java,html,jsp,Java,Html,Jsp,我们已经构建了一个java程序,在该程序中,一个进程开始并开始将日志输入到一个日志文件中,该文件始终保存在同一位置。每次流程开始时,将生成一个新的日志文件,其名称中带有时间戳(例如:process_16-11-2013-11-11.log、process_16-11-2013-13-56.log)。流程一结束,我们就在jsp上向用户显示一个超链接。此链接包含日志文件的路径。用户可以单击此链接查看日志文件 <% HashMap bundleDetails = new HashMap(); S

我们已经构建了一个java程序,在该程序中,一个进程开始并开始将日志输入到一个日志文件中,该文件始终保存在同一位置。每次流程开始时,将生成一个新的日志文件,其名称中带有时间戳(例如:process_16-11-2013-11-11.log、process_16-11-2013-13-56.log)。流程一结束,我们就在jsp上向用户显示一个超链接。此链接包含日志文件的路径。用户可以单击此链接查看日志文件

<%
HashMap bundleDetails = new HashMap();
String bundleCommonLocation = prop.getProperty("bundleCommonLocation"); 
    bundleDetails.put("currentLogFileName", bundleCommonLocation + "propagateBundle_"+dateFormat(startDatedt)+".log");
%>

<div id="fileLink">
    <a target="_blank" href="<%=bundleDetails.get("currentLogFileName") %>">Click here to view log file</a>
</div>

在上述代码中

道具属性

正在从属性文件获取值。当我指向超链接时,我可以看到格式良好的超链接。如果我点击它,什么也不会发生。页面停留在它所在的位置。我试图通过右键单击并选择适当的选项在新窗口中打开它,但这也不起作用。
奇怪的是,如果我右键单击并选择“复制链接地址”,然后将其粘贴到一个新选项卡中,然后按Enter键,日志文件将正确打开。

值得注意的几点:

  • 我们正在tomcat上运行应用程序

  • jsp包含java代码,因为它是对遗留代码的维护,所以不能阻止在jsp中加入java内容

  • jsp加载后源代码中的超链接摘录:

  • 我的css没有引起任何问题,因为我从css中删除了id“fileLink”,然后运行了它。遇到了相同的问题

  • 日志文件是在进程运行时动态形成的。尽管所讨论的超链接在流程结束时显示,但它是在流程开始时形成的,这意味着在日志文件实际形成之前。但我们将其隐藏起来,并仅在流程执行完成后向用户显示。这可能是原因吗?

    编辑
    只是澄清一下,tomcat服务器位于远程机器上,用户正在本地机器上运行程序。在向用户显示超链接之前,我们成功地将日志文件从tomcat机器复制到用户特定的本地机器,并且此超链接尝试打开位于此用户特定的本地机器上的文件


  • 用户是否总是在运行tomcat服务器的同一台机器上?如果没有,您将无法在href中放置文件的路径。即使如此,您仍然应该在href值前面加上
    file://
    @Tap谢谢Tap。用户与tomcat位于不同的机器上,但在显示超链接之前,我已将日志文件从远程tomcat运行机器复制到用户特定的本地机器。我试过你的建议,但没有成功。正在更新我的问题中的日志文件位置信息。谢谢你指出这一点!!