在学习SpringMVC路径问题搞得很头疼。
路径的构成:资源路径与资源路径名称
请求路径=资源路径+资源名称
资源路径与资源名称的分水岭为,请求路径的最后一个斜杠。斜杠之前称为资源路径,斜杠之后为资源名称。
资源名称: index.jsp
资源路径: http://localhost:8080/aaa
资源名称: 系统指定的欢迎页面
路径的分类:绝对路径和相对路径
绝对路径:可以唯一的定位一个资源的路径。在Web应用中,一般情况下,以请求协议开头的路径为绝对路径。绝对路径使用URL(统一资源定位符)形式表示。
相对路径:仅仅依靠此路径无法唯一的定位一个资源,若再为其添加一个参照路径,就可以将其转换为一个可以定位资源的绝对路径,这样的路径称为相对路径。在Web应用中,一般情况下,不以协议开头的路径为相对路径。
转换关系:绝对路径=参照路径+相对路径
绝对路径的分类:资源定义路径和资源请求路径
资源定义路径:用于表示资源的位置
资源请求路径:客户端发出的对指定资源的请求路径
相对路径的分类:斜杠路径和非斜杠路径
斜杠路径:以斜杠开头的的路径
非斜杠路径:不以斜杠开头对的路径
斜杠路径的分类:前台路径和后台路径
前台路径:出现在html文件,及jsp文件的静态部分、css、js文件中的斜杠路径,称为前台路径。例如,html及jsp文件中的、、,css中的background:img(“”),js中的window.location.href=””等中的以斜杠开头的相对路径,称为前台路径。
后台路径:出现在Java代码、jsp文件动态部分(Java代码块、JSP动作等),及xml、properties等配置文件中的斜杠路径,称为后台路径。
路径解析器
相对路径最终都会经过路径解析器,将其解析为绝对路径,用于定义或请求一个资源。不同的相对路径,具有不同路径解析器。
前台路径解析器:浏览器
后台路径解析器:服务器
非杠路径解析器:若非杠路径出现在前台路径出现的位置,则其解析器为浏览器;若非杠路径出现在后台路径出现的位置,则其解析器为服务器。
解析规则
不同路径解析器,对同一个相对路径的解析结果是不同的,即转换为的绝对路径是不同的。由于绝对路径 = 参照路径 + 相对路径,所以解析结果的不同,主要是不同的解析器为相同的相对路径配置上了不同的参照路径。所以,我们要学习的解析规则,就是不同的解析器为不同的相对路径所配置的不同的参照路径。
一般规则
前台路径的参照路径为:当前web服务器的根
后台路径的参照路径为:当前web应用的根
非杠路径的参照路径为:当前请求路径的资源路径
举例:
资源名称:hello.jsp