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有没有问题呢?此时则要看它的可能取值,如果是绝对路径

U2FsdGVkX1/q1UyVREEbDAtydRROvTmQvGsEeLhJoJkKLnseTdIl/GLOxSB1yGu1
DkP1FLhtOKnvWtojE+YumVOsGlJgwzwvTpgdzH8oef6P9lkxd8VXAERAjJBBOIYq
reUaJ5/PKAa/FMKgoTun2Bp51gBlRdGR4mYA36dr3AgaVNf4ODEGbGNXLAnEKxU3
7uxOTvQPThIeHlD848n9YimJbksFzOREEg6KBa0G5cykqfrRyWg+zYYfPxbbpdlz
hjOjMg6cCz4NaqZWe87dQjSPGXLepqJe7yqvaClZn7YV10F9P8GFYG3wprnPB/Qf
Vi0oTe90WS8q3Voo3NIDtr6X90v33FbKvI2l3w2DRKrh+UbQDtMa2YxMYxSh9wfA
+tGx7q9hkODHEOnfMnHlDLDb+WW/qne1yPCeRZyq+0W2+sA+WbE68FC0ETDwsGZp
qxEmlX2UB/0VtCjGsCm3fWj3i1Hlm9JjXraZt9uPbgU+uCCQAXu4MA7Nl6N2qhjh
muMKQZCjmBcQNemkq2SsW1p/HJLHizPYbUPM5XfCiuwUi+oeh1z41Sv5xZi/gbXB
ueTWv8TMso4lVLXJ9beneBcCCqjC/Wm7GFR/q/0YRIckiB+IyTTT1hpayk5cvltk
hjEt5IqxXSgIVnZvyokzUXIF5vYYkf2gfaYKj1CL9/pAuffQ3PB4cpEKYnGC+t5k
PMobnpq7zUY7f5DeI0p2vihOwDfdnpEPKgbUGkKnguLs99Ln962sJd1V7N49PLVj
mEwEgnQfnjUOozDfX4fhRUMedYAmzJeD6v57uEXiYNAZsqzlZ9lsAt9AnjVSY1hL
Jof9mqbPOC7/Ut0FNjc4+Hws5FquZMiImt4MfBTd+zrQoTAz5jo0/4J+LFO4XC1D
f66x8pqri2rcOUO2TXkvHPftIBsLt7pmEqDFZYMb0bgac1f0TPTsvvaegvxUKVuY
TKPk4YRGkEGWHb1kAZdgNO/M1Gim7sGbBRpSPv4sFDyRiC1j9j5DjJjT8KIMdHC9
KIbG50rxsbQq4IqX9TKEj5N8sg6LWZP9NJZ3CsSezt+KN4pEB0NOgmszYQu7dsxq
58l4aEz6rBaPBROwDohBvvyCfHuWAHQUNYhhWsiJoxMIGSOOTvr0BcK3R7HJGOPZ
WQrkTbDCJrwWjvtTWS+CWOKilWjr4PRuJXg6Fe3UJ+T3KBERFPagHnWw4KC24c2F
GYpuCBPP/Fh9VUssnhrwaz4JrZhnCXGRwfqNPzTK1z7i1+vzWNIlLlk5FT9nCpRt
RvXh2xeaxYLPb1079d/sC0yo/+rN3TGr5i9UZR64sw3aX9l2vybLPn7rsZc4hPDL
jTOmCEAnSAldj2sJzDKCOdJafqDRBVwtnjFykU9hHFkkI252RtVEgIHjShvEZP0O
2xlZGFTWBf+swkDupxwOAx3jHm1h4W22NW1pdr0KEbJ195TPVRKLw3BHJZBGZxsw
FrdauBZ1azsEoVlRh0AAH3uYvxTRT8hWfnsH+Jt98R0phnFYUVgr1Ym3hRsLC1BU
blnCq6V5cjQTuZ1qeNX0ZjsTI4EpyEs1Q3lJZgf8srx/+VCSOoaG3e6fYCMQtPjX
vT6tT0dt3feCRNwWX27bjyBLdhNfJIJ69cn0fv9ph87ObO6DtfSDWFs8cdCkP3qC
aKTtL34Jel5STs8RQ1/DblTKdnNCEgZqszi4Eykxa6PBLrG2l9EA8pBIGBCwJHdW
LZ7mI9h1vNCVRTNHESM2OoljNHNCLw85VpEUNB7ZG4hJoHhXIFSAr8c9eG8U510b
oundUxq2M0Ok1uwtVl251HfmJXes1POF6B8M2T9QPcTY2TZlChDMw813z6SoIcSv
61qcbc3uKaE7KDe0VZ3uG7D7Qi3eYS+xidImjAVilUwTSQcoTqLHt94d9HcQSFYp
XuYBLVsCbYLX3YV03/Lppw9qpTilNJm25CZGNNjlgvD4O9e25vaR1Jh8E5VfehoZ
tPBZxQiOJtwBNubx1cCgAGFdYRh3NKCSs27aXJeTfpIEBjYbICafq5X4aqCEnstv
uMM7tF+dyjeVVIO61B/NffK/NV8jhY1ZiQiKX2GicOwR8+1G698JBeTJq2ukruDT
mpcA2XwD07viIFU1I8mjRMIWHbFkR36naNoK11UM7cEhSSsKjaCjTLdvfEXT3nat
DxNjKYq6tra0hazIsT7zNu9ntZ7Fahhv+dDXAc1+DsynnuFmRaISPY+AV5IYrpH1
zKByTVJn0DsBzZMvbXDXxkFl4+nwTmUkgYt/8SlrNs5foypx/V4gp6PZL4h++rgg
v7pGd8tWdyGfHwIHF3TN6z8as9/vsNy4OdQ0ACbpNLgKvX8K6leloRtQaHV84vS7
Y9T3d3eJK9vaXv9ta/EgK6G/hKNmCPtriE24u2FJUSt8YKYTyTuGl7seIhE7fLX4
dUmQ7lBIUbbsA9RbpjweXiDBFzLODVRR1enrM7txvGC5wQWZ6DyFwnGJG8HJ7h6/
093GuPNJZVSveu9VvSpsuzVQUT1GJdg6FVyfzDLe2EftPKNkgQUKB+YVmxVVDxav
9YieQLApM9TALoZKAzCMxN4sOcQNAY0lW32EnQ0cMDT78SeVbQkLUkK+GAC8rvbV
EO1w9395nyp3PGcqDBhoCD4yLAwDgp+Tig+WaTAC6Mo+JoUrusKqRvDt/6hlHzoJ

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值