在 URI类中有个relative方法可以用来将uri相对化。今天开发时发现了问题,它返回的相对链接并不是我想象的那种结果——不具有正确的层次关系.
QUOTE:
relativize
public URI
relativize
(URI
uri)
根据此 URI 将给定 URI 相对化。
根据此 URI 将给定的 URI 相对化按以下方式计算:
-
如果此 URI 或给定 URI 是不透明的,或者如果两个 URI 的方案和授权组成部分不相同,或者如果此 URI 的路径不是给定 URI 的路径前缀,则返回给定的 URI。
-
否则,使用从给定 URI 获取的查询和片段组成部分,以及通过把此 URI 的路径从给定 URL 的路径开头处移除而得到的路径组成部分,构造新的相对分层 URL。
参数:
uri - 要根据此 URI 进行相对化的 URI
返回:
得到的 URI
抛出:
NullPointerException
- 如果 uri 为 null
在官网找到了这个buglist http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6226081
,症状在这个bug里描述得很清楚,我就不多说了.
我的测试用例如下:
QUOTE:
package cn.tohot.webdown;
import java.net.URI;
import junit.framework.TestCase;
public class LinkReplaceTest extends TestCase {
public void testLink() throws Exception {
URI i = new URI("http://localhost:8080/abc
");
URI i2 = new URI("http://localhost:8080/manager
");
assertEquals("manager", i.relativize(i2).toString());
i = new URI("/abc/");
i2 = new URI("/manager");
assertEquals("../manager", i.relativize(i2));
assertEquals(true, i.resolve(i.relativize(i2)).equals(i2));
}
}
2005年的bug,还没有解决掉,唉.!!!!!只好自己写一个了.
【2008-7】
分享到:
相关推荐
解决no such provider: BC 问题所需的JAR 在jdk中的jre\lib\security修改java.security文件, security.provider.6=com.sun.security.sasl.Provider 下面添加...bcprov-jdk16-143.jar提供加密,解密,生成密钥对等方法
bcprov-jdk16-1.46.jar
解压后使用方法:(不执行下面两步,运行java -version会报下面的错误,解压命令:tar xvzf jdk1.6.0_191.linux.x64.tar.gz) # Error occurred during initialization of VM # java/lang/NoClassDefFoundError: java...
jdk1.8.0_181.tar.gz
解决no such provider: BC 问题所需的JAR 在jdk中的jre\lib\security修改java.security文件, security.provider.6=com.sun.security.sasl.Provider 下面添加 security.provider.7=org.bouncy...jdk15-135.jar的jar
解决no such provider: BC 问题所需的JAR 在jdk中的jre\lib\security修改java.security文件, security.provider.6=com.sun.security.sasl.Provider 下面添加 ...在\jre\lib\ext中添加bcprov-jdk15-135.jar的jar包
jdk1.8.0_121.tar.gz
bcprov-jdk16-143.jar提供加密,解密,生成密钥对等方法
logback-cfca-jdk1.6-3.1.0.0.jar
jdk1.8.0_221.tar.gz.zip 提示:先解压再使用,最外层是zip压缩文件
java中对pdf文件操作,若要加密,需要这个包。 注意bcprov有许多版本,如bcprov-jdk16-145.jar, 请确认你的iText包的版本,本包适用于iText-2.0.1.jar版
jdk1.8.0_131.zip
jdk 1.8.tar.gz
slf4j-jdk14-1.7.23.jar
JDK_8.0.1310.11_32bitJDK_8.0.1310.11_32bitJDK_8.0.1310.11_32bitJDK_8.0.1310.11_32bitJDK_8.0.1310.11_32bitJDK_8.0.1310.11_32bitJDK_8.0.1310.11_32bitJDK_8.0.1310.11_32bitJDK_8.0.1310.11_32bitJDK_8.0....
第三方加密的JAR包bcprov-jdk14-145.jar下载
java的jdk7/jdk8通用tools.jar,解决maven项目打包或者启动报错时缺少启动jar包的问题。
jdk1.8中文文档.CHM
bcprov-jdk15-133.jar bcprov-jdk15-133.jar