绝对路径:带访问协议的路径,即URL。例如:http://127.0.0.1:8080/primary/index.jsp
相对路径:以基准路径为参考,查找其他路径。在进行资源访问时,必须要将相对路径转换绝对路径才可完成对资源的准确定位。
绝对路径=参照路径+相对路径
在web应用中,浏览器或服务器会自动为不同的相对路径添加不同的参照路径。
相对路径的写法有两种:一种是以斜杠开头的的相对路径;一种是以路径名称开头的相对路径。
一、以斜杠开头的相对路径
以斜杠开头的相对路径,根据路径所在文件所处位置的不同,分为两种:前台路径和后台路径。
1)前台路径
前台路径是指,由浏览器解析执行的代码中所包含的路径。例如:html、css、js中的路径,及jsp中静态部分的路径(html标签中的路径)。
前台路径的参照路径是web服务器的根路径,即http://127.0.0.1:8080。
2)后台路径
后台路径是指,由服务器解析执行的代码及文件中所包含的路径。例如: java代码中的路径、jsp文件动态部分(java代码块)中的路径、xml等配置文件中的路径等。
后台路径的参照路径是web应用的根路径。如:http://127.0.0.1:8080/primary。
3)后台路径特例
当代码中使用response的sendRedirect()方法进行重定向时,其参照路径不是web应用的根路径,而是web服务器的根路径。
例如,执行response.sendRedirect("/show.jsp"),将会报404错误。因为其参照路径是TomCat的根,而非当前项目的根。所以若要进行重定向,就需要在路径上添加项目名称。
response.sendRedirect(request.getContextPath+"/show.jsp")
二、以路径名称开头的相对路径
以路径名称开头的相对路径,无论是出现在前台页面,还是出现在后台java代码或配置文件中,其参照路径都是当前访问路径的资源路径。
对 于JSP的hmtl部分中的路径,可以在HEAD中定义BASE标签,指定改页面的基准路径,一旦定义后,该页面中的相对路径都是基于该基准路径的,如BASE中定义HERF=”http://127.0.0.1/XXHP/",那么如果A中定义HREF="welcome.jsp",就相当于HREF= "http://localhost:8080/XXHP/welcome.jsp"。