【发布时间】:2010-10-31 19:26:26
【问题描述】:
首先我在这里提供一个小代码sn-p:
String path = "".equals(url.getPath()) ? "/" : url.getPath();
java.io.File f = new java.io.File(path);
if (!f.exists()) {
this.code = 404; // http Not Found
return;
}
这里,URL的类型是java.net.URL,它的值是这样的格式:
file:///directory1/directory2.../filename
上述代码在处理一般 URL 时 90% 的时间都有效,但当文件名中包含特殊字符时它会失败。例如:
/tmp/Marissafolli/Receptionist/Administrative Assistant/Marissa's Resume.txt.txt
这样的 URL 将报告“404”代码,即使它们存在。以下版本适用于这些特殊情况:
java.io.File f = new java.io.File(url.toURI());
但url.toURI() 仅在 j2SE 1.5.0 中。所以我需要使用第一个版本。我怎样才能让它发挥作用?
【问题讨论】:
-
原始网址是从哪里来的?
标签: java url file http-status-code-404