web应用的绝对路径和相对路径

  经常写web工程,就会涉及很多路径问题,今天复习下绝对路径和相对路径,以提醒自己下次不要以为路径问题头疼。

1.绝对路径和相对路径

相对路径:helloworld  ./helloworld ../helloworld            这样的都是相对路径
绝对路径:/helloworld   /myweb/helloworld

2.相对路径相对谁

相对路径相对的是当前的url,怎么解释,例如:
 技术分享
当前url为http://localhost:8080/day/tijiao.html,看一下tijiao.html的源码:
      
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>提交一个数</title>
</head>
<body>
    <form action="path" method="post">
        请输入一个数字: <input type="text" name="number"/>
        <input type="submit" value="测试获得路径" />
    </form>
</body>
</html>
action写的是path,那么,提交后,就会把http://localhost:8080/day/tijiao.html链接中的tijiao.html替换为path变为http://localhost:8080/day/path,这就是所谓的相对于当前的url。
如果我们这样:
技术分享
tijiao.html的源代码仍然是上面的,那么点击提交按钮后,会变成如下:
技术分享
按照刚才那个原理,把最后一个tijiao.html换为path,那么就无法找到,所以404。

3.如何写绝对路径,对于客户端绝对路径中的/代表什么?

如果我们部署的工程名是/day,那么我们可以这样写html路径:
<form action="/day/path" method="post">  此时 / 代表服务器根目录 http://localhost:8080

4.jsp中怎样写?

由于我们部署服务器,可能叫不同的名,那么我们在代码中写死了/day这样很不好,那在jsp中如何写呢?
我们可以这样:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>提交一个数</title>
</head>
<body>
<form action="<%=request.getContextPath()%>/path" method="post">
    请输入一个数字: <input type="text" name="number"/>
    <input type="submit" value="测试获得路径" />
</form>
</body>
</html>
<%=request.getContextPath()%>就可以获取部署的跟路径了。

5.客户端关于路径问题的通用结论:

html,jsp,js文件用里面用绝对路径
css内部使用的背景图片等用相对路径





  


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。