我正在尝试一种简短的URL缩短器实现,例如tinyurl.com或bit.ly.目前我在我的servlet中执行了response.sendRedirect(targetURL)
- 它适用于http / ftp目标URL。
但是,我在重定向到目标时遇到问题,例如file:///c:/temp
(当然c:\temp
在本地/客户端系统上)。
在Firefox地址栏上键入file:///c:/temp
可以正常工作,但是从服务器重定向似乎什么都不做。
出于某些安全原因,这是不可能的?或者我在这里做错了什么?
提前致谢!
答案 0 :(得分:2)
这对某些安全性是不可能的 原因?或者我做错了什么 这里吗?
是
答案 1 :(得分:1)
通过解释这个问题,不要破坏我的第一个答案的美丽。因此,我决定,解释应该放在这里。
嗯,首先,您如何考虑访问客户端的本地驱动器。确实是一个安全问题。您无法访问客户端的文件系统,就像那样。
您似乎没有要求这样做。如果你有必要,出于某种原因,你可以想到签名的小程序或其他东西,我相信。
就你的困惑而言,它正在你的firefox上工作。这是因为您可以访问自己的计算机,而URL对于Firefox来说也很合适。但是,在servlet中,你不能只这样做。阅读sendRedirect()
的文档,它说
如果位置是相对的,没有 导致'/'容器解释 它相对于当前的请求 URI。如果位置是相对的 容器解释的前导'/' 它相对于servlet 容器根。