此处的绝对路径与相对路径主要讨论的是,前端页面向后台控制器发出请求时的简单路径问题。
1. 绝对路径
- 当你的前端页面选择的跳转路径为/开头的时候,使用的是绝对路径,即在IP信息后,或域名后开始替换,在HTML中,就是整个域名或公网ip信息加上这个HTML文件的位置,举个栗子:
<form action="/user/regist.do" method="post">
此处为form表单提交的地址,若原地址信息为
http://localhost:8080/WebPro/user/show.do
则会被替换为
http://localhost:8080/user/regist.do
所以一般情况下,我们会在前端页面的路径前面加上一个EL表达式:
${pageContext.request.contextPath}
此处获取的是此页面上下文的路径,也就是这个web项目的根路径,在这里表示的就是/WebPro
,再在后面跟上绝对路径,得到一个
${pageContext.request.contextPath}/user/regist.do
2. 相对路径
- 当然,相对路径就是没有以/开头的请求路径。相对于”自己”(当前页面)的路径。换句话说,就是同一个目录的文件引用,如果源文件和引用文件在同一个目录里,直接写引用文件名即可。
我们可以把上面的分析以例子理解:
http://localhost:8080/WebPro/user/login.do
这是我们当前的路径信息,请求路径如下:
<form action="regist.do" method="post">
当使用这样的相对路径方法发送请求,从当前路径的最后一个/开始替换路径信息,即请求到:
localhost:8080/WebPro/user/regist.do
还有一种相对路径如下,也许在请求时我们不会这么写,但是一般的测试过程,引用静态资源必要时,也可以这么写
../css/login.css
../../image/1.gif
希望此篇博客能帮你理清思路,不至于在每次请求时晕头转向,最后加个/,或者去掉个/,虽然结果正确了,但是还是一脸懵66