Tomcat中访问的绝对路径与相对路径


前言序锦

为期20天的暑期实习结束了,在实习过程中遇到了很多问题,也学到了很多新的知识,但作为项目组组长,基本没有时间来更新自己的博客,而我们是超额完成了自己的项目,所以这几天比较空闲,有时间来BB一下,怕自己刚了解的知识忘记了!


正文

1,问题

https://blog.csdn.net/HuaCode/article/details/81252590在编写HTML网页中,我们会遇到很多从外部导入的文件,这个时候我们就会遇到很多路径加载的问题,而如果你对路径记载不清楚的话,就会在一个看似简单的问题上徘徊很久,却久久不能得到你想要的结果!

2,绝对路径与相对路径

比如我们在tomcat服务器中进行访问的路径是:http://localhost:8080/practice_system/
然后我们现在在本页面加一个按钮,

<input type="button" id="button" class="button" onclick="submit()">点击提交

当点击按钮,跳转到另外一个页面中去,而这个时候我们在js中则需要一个函数来进行实现:

//student.html放到主路径下的stu文件夹下面;
<script>
function submit(){
    window.location.href="stu/student.html";//表示从当前路径开始进行加载网页
    //window.location.href="/practice_system/stu/student.html";//表示从主文件夹下开始加载文件
}
</script>

看到了这段代码,我们很多人可能会疑问,为什么一个表示从当前路径开始加载,一个表示从主路径下开始加载呢?这里我们就要重点注意一下这个 ‘/’ 了

  • 绝对路径

/practice_system/stu/student.html表示绝对路径,意思就是你当前加载的文件就放在这个路径对应的文件夹下面,如果对tomcat有了解的同学就知道,意思就是从tomcat的webapps文件夹下面开始加载,其绝对路径就是:(tomcat的webapps文件夹后面的路径就是8080/后面的路径)
practice_system/stu/student.html这里指的网页加载路径。我们可以从最开始的路径看http://localhost:8080/practice_system/,这里其实是将/practice_system/进行了重复

  • 相对路径

stu/student.html表示相对路径,意思就是你当前加载的是浏览器当前的路径后面的路径,也即是你的文件路径应该是浏览器当前路径+加载的当前路径,拼接出来的路径就是:practice_system/stu/student.html我们可以看出,和上面的绝对路径是一样的,但是这里没有将/practice_system/进行重复了。
所以综上所述,加载相对路径,不要用/开头,浏览器是从当前访问路径开始算起的文件路径;加载绝对路径,需要用/开头,浏览器是重新从主文件夹加webapps下面开始算起的文件路径!

3,tomcat服务器中访问的初始路径设定

我们可以看到上面的初始访问路径是http://localhost:8080/practice_system/也就是从webapps文件夹下面的practice_system文件夹下面开始访问的,但是我们将自己的主页index.html文件都没有放到放到这个文件夹下面,但是为什么还是能加载到主页去呢?这个问题就要看我们的web.xml文件中的设置了。(web.xml文件位于webapps\practice_system\WEB-INF文件夹下面),我们来看里面的详细配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>practice_system</display-name>
    <welcome-file-list>
        <welcome-file>practice_system/index.html</welcome-file>
        <welcome-file>practice_system/index.htm</welcome-file>
        <welcome-file>practice_system/index.jsp</welcome-file>
        <welcome-file>practice_system/default.html</welcome-file>
        <welcome-file>practice_system/default.htm</welcome-file>
        <welcome-file>practice_system/default.jsp</welcome-file>
    </welcome-file-list>
</web-app>

我们可以看到我们的index.html页面也在web.xml文件中,对的,我们要访问的首页都在这个文件中,而我们可以清楚地看到,其加载的路径为:practice_system/index.html,在tomcat服务器中进行访问的路径就是http://localhost:8080/practice_system/index.html,但是呢,在加载过程中,将index.html的页面加载进去了,但是没有将对应的网页的名字加载到路径中,所以就出现了http://localhost:8080/practice_system/这个路径就是主页访问的路径,然后当我们再通过相对路径或者绝对路径跳转到其他页面,即可进行下一步的操作……


ps:哈哈,今天的更新就到这里了呀,这几天会持续加载的……不见不散^_^

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HuaCode

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值