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则要视实际情况而定。第二个,从HttpServletRequest的javadoc中可以看出,getRequestURI返回一个String,

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
VgMIHk63dFjjmRI4DTnGhw==

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值