url和uri区别

在这里插入图片描述这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java Bean中定义一些字段,用来表示资源的位置,比如:imgUrl,logoUri等等。但是,每次定义的时候,心里都很纠结,是该用imgUrl还是imgUri呢?同样的,另外一个问题:String HttpServletRequest.getRequestURI();和StringBuffer HttpServletRequest.getRequestURL();返回的内容有何不同?为什么会如此?带着这些问题到网上去搜了下,没发现让自己看了明白的解释,于是,想到了Java类库里有两个对应的类java.net.URI和java.net.URL,终于,在这两个类里的javadoc里找到了答案。URIs, URLs, and URNs首先,URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。而URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。而URN,uniform resource name,统一资源命名,是通过名字来标识资源,比如mailto:java-net@java.sun.com。也就是说,URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URL和URN都是一种URI。在Java的URI中,一个URI实例可以代表绝对的,也可以是相对的,只要它符合URI的语法规则。而URL类则不仅符合语义,还包含了定位该资源的信息,因此它不能是相对的,schema必须被指定。ok,现在回答文章开头提出的问题,到底是imgUrl好呢,还是imgUri好?显然,如果说imgUri是肯定没问题的,因为即使它实际上是url,那它也是uri的一种。那么用imgUrl有没有问题呢?此时则要看它的可能取值,如果是绝对路径,能够定位的,那么用imgUrl是没问题的,而如果是相对路径,那还是不要用ImgUrl的好。总之,用imgUri是肯定没问题的,而用imgUrl则要视实际情况而定。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值