天天看点

java中相对路径与绝对路径总结

1.访问路径的定义

1)基本概念

URI = 虚拟路径(ContextPath) +资源路径(ServletPath)

URL=协议://主机:端口 + URI

通过比较请求中的不同路径的区别,例如:

java中相对路径与绝对路径总结

控制台输出:

java中相对路径与绝对路径总结

2. 用相对路径进行访问的注意点

1)相对路径的写法首先需要判断相对位置,稍显麻烦,绝对路径用得较多,注意相对路径不以/开头,都以点开头或者不写点。绝对路径以/开头。

相对路径中

java中相对路径与绝对路径总结

例如:

java中相对路径与绝对路径总结

a标签在location.html上,为了访问到资源路径为responseDemo02的资源,下面两种写法一样

java中相对路径与绝对路径总结

2)如果将location.html的位置改到htmls文件夹中,先判断相对位置,如下

java中相对路径与绝对路径总结

则相对路径写法如下:

java中相对路径与绝对路径总结

3)相对路径中当前资源所处位置的判断!

按浏览器地址栏的路径为准,如果当前页面比如a.jsp是由转发而来,当在a.jsp中访问其它页面是,当前地址不应该是jsp页面所在地址,而应该是浏览器地址栏上的地址,即转发后如果在新页面要用相对路径访问,则要以不变的地址栏作为基准去判断和目标路径的相对位置!如下:

java中相对路径与绝对路径总结

3.用绝对路径进行访问的注意点

1)通常绝对路径指完整的带有协议,主机,端口号。但这里我们用简化的,即去掉协议,主机,端口号,用虚拟路径+资源路径 代表绝对路径。并且开头的斜杠不能省略。

java中相对路径与绝对路径总结

这里主要讨论虚拟路径可不可以省略的情况。判断规则如下:

java中相对路径与绝对路径总结

2)上边是用相对路径对responseDemo2进行访问,同样也可以通过绝对路径对其进行访问,但是必须加上虚拟目录。因为是从客户端浏览器到服务器的请求。

java中相对路径与绝对路径总结

3)转发的时候,不加虚拟目录,因为是服务器内部进行请求。

java中相对路径与绝对路径总结

4)form表单action的访问路径,a标签超链接,重定向访问路径都需要用绝对路径,即以/开头的路径的路径,虚拟路径用动态获取,request.getContextPath/资源路径

java中相对路径与绝对路径总结

即URI

之所以将虚拟路径进行动态获取,只因为加入IDEA的虚拟路径的配置改了,但是代码中所出现的虚拟路径没改,则无法访问下去!

5)从jsp页面发起访问,既可以用相对路径,也可以用绝对路径。用相对路径,则要根据所在页面的URL和目标页面的URL,计算相对位置;用绝对路径则先判断是否是从客户端到服务器或者服务器内进行跳转,再考虑要不要加虚拟路径。

java中相对路径与绝对路径总结