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

时间:2013-11-16 23:07:34

标签: java html jsp

我们已经构建了一个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>

在上面的代码中,

  

prop.getProperty

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

值得注意的一点:

  1. 我们正在tomcat上运行应用程序
  2. jsp包含java代码,因为它是对遗留代码的维护,所以不能阻止在jsp中放入java东西
  3. jsp加载后源代码中的超链接摘录:

    <div id="fileLink"><a target="_blank" href="D:\IQProcess\Common\Bundles\propagateBundle_2013-11-17-03-49.log">Click here to view log file</a></div>

  4. 我的css没有造成任何问题,因为我从css中删除了id“fileLink”然后运行它。同样的问题。

  5. 日志文件是在进程运行时动态生成的。尽管有问题的超链接显示在进程的最后,但它是在进程开始时形成的,这意味着在日志文件实际形成之前。但是我们将其隐藏起来并仅在流程执行完成后显示给用户。这可能是原因吗?

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

0 个答案:

没有答案