通常我们认为URL就是我们在浏览器输入的那串字符。这大多数时候是对的。不过有一些‘额外的细节需要注意
一个完整的URL包含以下部分
一个 协议,服务地址,端口,URI和参数,举个例子
http://localhost:8080/demo/helloworld?action=sayit
其中http是协议
localhost是服务器地址
8080是端口
/demo/helloworld是URI
action=sayit是参数
其中前三个定义了网络上唯一的一个服务,通过这个唯一的标志我们就可以和网络上的某台主机的某个端口建立连接访问其服务。
URI是主机上资源的唯一标识,对于静态的站点来说它可能是一篇文档或者一个图片。对于动态的站点它实际上用来通知容器调度哪段服务,不过从客户端来说我们最好也把它当做一个资源看待。
以上是URL对于浏览器的意义
在jsp的java容器中会根据一定的规则,以URL作为输入来调度程序
以jboss为例,jboss通常会运行若干个虚拟主机,主机有自己名称和别名,而应用要装载到虚拟主机中,并且有自己的context-root。当服务器接受到一个请求后,它先根据请求中的host字段找到主机,然后根据URI在主机下寻找能匹配URI的应用。再根据应用的配置寻找servelt。