常用地址的写法:
绝对路径:
以/开头的路径就叫做绝对路径,绝对路径在相对于的路径上直接拼接得到最终的路径
相对路径:
不以/开头的路径就叫做相对路径,相对路径基于当前所在的路径计算的到最终的路径
硬盘路径:
以盘符开头的路径就叫做硬盘路径.是哪个路径就是哪个路径.没有相对于谁的问题
虚拟路径: --写虚拟路径时都使用绝对路径
1)如果路径是给浏览器用的,这个路径相对于虚拟主机,所以需要写上web应用的名称
<a href="/Day04/.....">
<form action="/Day04/...">
<img src="/Day04/....">
response.setHeader("Location","/Day04/....");
response.setHeader("refresh","3;url=/Day04/...");
response.sendRedirect("/Day04/...");
2)如果路径是个服务器用的,这个路径相对于web应用,所以可以省写web应用的名称
request.getRequestDispathce("/index.jsp").forward();
request.getRequestDispathce("/index.jsp").include();
真实路径: --写真实路径时都使用相对路径
根据原理,具体问题具体分析
servletContext.getRealPath("config.properties");//--给一个相对于web应用目录的路径
目的:读资源的
原理: 在给进去的路径之前,拼接web应用的硬盘路径
classLoader.getResource("../../config.properties");//--给一个相对于类加载目录的路径,
//--比如配置文件(onfig.properties)刚好在web应用底下
目的:类加载器去加载资源
原理:类加载的目录下去加载资源,类加载的目录下即:class目录
File file = new File("config.properties");与new InputStream("config.properties");
//--相对于程序的启动目录,
//--如果是tomcat运行环境下,相当于tomcat的bin目录,
//--如果是普通得java工程,相当于当前java工程的根目录
类加载器用法举例:(此处只是讲解类加载的用法,这个例子不适合举例相对路径与绝对路径的区别)