路径专题
一、路径介绍
相对路径:不以/开头的路径称为相对路径。相对路径是以当前路径作为基础计算出目标路径。计算的法则,用相对路径替换当前路径的最后一级。相对路径之前一般都省略了一个代表当前 目录的./。也可以用../表示上一级的目录。
绝对路径:以/开头的路径称为绝对路径。绝对路径是将绝对路径拼接到一个固定的基础路径上拼接出来的路径。
以盘符开始的绝对路径(硬盘路径):以盘符开始的路径称为硬盘路径。
二、虚拟路径vs真实路径
虚拟路径:
写绝对路径,尽量少用相对路径。如果路径是给服务器用则应用名不要写,如果路径是给浏览器用则应用名必须写。
~在写绝对路径的时候,如果路径是给服务器用的,则“固定的基础路径”是当前web应用,所以web应用的名称必须省略。
~在写绝对路径的时候,如果路径是给浏览器用的,则“固定的基础路径”是当前虚拟主机,所以web应用的名称一定要写。
-------------------------------------------------------------------------------------------------------------*-*
localhost/Day08/index.jsp
request.getRequestDispathcer("/index.jsp").forward();
request.getRequestDispathcer("/index.jsp").include();
response.sendRedirect("/Day08/index.jsp");
response.setHeader("refresh","/Day08/index.jsp")
response.setHeader("Location","/Day08/index.jsp")
<a href="/Day08/index.jsp"/>
<form action="/Day08/index.jsp">
<img src="/Day08/index.jsp">
真实路径:
根据路径的原理,具体问题具体分析。
(1)File file = new File("");
流...
--如果写一个相对路径,则在程序启动目录下开始找
--如果写一个绝对路径,则在程序启动目录的根目录下开始找
(2)this.getServletContext.getRealPath("");
--此方法,在传入的路径前拼接当前web应用的硬盘路径,拼接出资源的硬盘路径,此时写相对路径和绝对路径是一个效果。
(3)ClassLoader.getResource("");
--类加载器平常在哪里加载类就帮我们从哪里开始加载资源。
--如果给一个相对路径,则基于类加载器加载类的位置开始计算。
--如果给一个绝对路径,则基于类加载器加载类的位置的根目录开始计算。不推荐。
《登科后》
孟郊
昔日龌龊不足夸,今朝放荡思无涯。春风得意马蹄疾,一日看尽长安花。