路径 专题

常用地址的写法:

绝对路径:

      以/开头的路径就叫做绝对路径,绝对路径在相对于的路径上直接拼接得到最终的路径
相对路径:

      不以/开头的路径就叫做相对路径,相对路径基于当前所在的路径计算的到最终的路径
硬盘路径:

      以盘符开头的路径就叫做硬盘路径.是哪个路径就是哪个路径.没有相对于谁的问题


虚拟路径: --写虚拟路径时都使用绝对路径


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应用的硬盘路径


一个servlet可以使用getServletContext()方法得到web应用的servletContext
即而使用getServletContext的一些方法来获得一些值
比如说getServletContext().getRealPath("/")来获得系统绝对路径
getServletContext().getResource("WEB-INF/config.xml")来获得xml文件的内容


classLoader.getResource("../../config.properties");//--给一个相对于类加载目录的路径,

                         //--比如配置文件(onfig.properties)刚好在web应用底下
目的:类加载器去加载资源
原理:类加载的目录下去加载资源,类加载的目录下即:class目录



File file = new File("config.properties");与new InputStream("config.properties");

                    //--相对于程序的启动目录,

                    //--如果是tomcat运行环境下,相当于tomcat的bin目录,

                    //--如果是普通得java工程,相当于当前java工程的根目录


类加载器用法举例:(此处只是讲解类加载的用法,这个例子不适合举例相对路径与绝对路径的区别)

      

纸上学来终觉浅,觉知此事需躬行
原文地址:https://www.cnblogs.com/dreamHighMjc/p/6936563.html