URL缩短:重定向到'file://'目标(文件协议目标)

时间:2009-12-17 04:00:03

标签: java http servlets bit.ly file-uri

我正在尝试一种简短的URL缩短器实现,例如tinyurl.com或bit.ly.目前我在我的servlet中执行了response.sendRedirect(targetURL) - 它适用于http / ftp目标URL。

但是,我在重定向到目标时遇到问题,例如file:///c:/temp(当然c:\temp在本地/客户端系统上)。

在Firefox地址栏上键入file:///c:/temp可以正常工作,但是从服务器重定向似乎什么都不做。

出于某些安全原因,这是不可能的?或者我在这里做错了什么?

提前致谢!

2 个答案:

答案 0 :(得分:2)

  

这对某些安全性是不可能的   原因?或者我做错了什么   这里吗?

答案 1 :(得分:1)

通过解释这个问题,不要破坏我的第一个答案的美丽。因此,我决定,解释应该放在这里。

嗯,首先,您如何考虑访问客户端的本地驱动器。确实是一个安全问题。您无法访问客户端的文件系统,就像那样。

您似乎没有要求这样做。如果你有必要,出于某种原因,你可以想到签名的小程序或其他东西,我相信。

就你的困惑而言,它正在你的firefox上工作。这是因为您可以访问自己的计算机,而URL对于Firefox来说也很合适。但是,在servlet中,你不能只这样做。阅读sendRedirect()的文档,它说

  

如果位置是相对的,没有   导致'/'容器解释   它相对于当前的请求   URI。如果位置是相对的   容器解释的前导'/'   它相对于servlet   容器根。