经常写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内部使用的背景图片等用相对路径
时间: 2024-12-25 02:55:23