Java 中访问路径的问题

在Java中路径分为绝对路径和相对路径

访问路径

通常访问路径也就是URL,统一资源定位符,URL由两部分组成资源路径和资源名称
在这里插入图片描述
资源名称也就是你要访问的路径,就比如我的image,我的image是访问的控制器的一个方法再由控制器方法转跳到页面
资源路径就是出去你的资源名称之后剩下的路径
由此类推URI
在这里插入图片描述
不管URL还是URl,资源名称都是以最后一个斜杠为分界线,前面的是资源路径,后面的是资源名称

绝对路径

绝对路径,是指根据给出的访问路径可以准确定位到资源的路径
       而对于计算机中 Web 应用的绝对路径,则是指带访问协议的路径,即 URL。例如下面的路径就是一个带有 http 访问协议的绝对路径。
       如下
http://localhost:8086/springstudy/image

相对路径

对于相对路径来说分为以/开头的相对路径和不以/开头的相对路径,方式不同所用到的参照物也不相同

以斜杠开头的相对路径

以斜杠开头的相对路径,根据路径所在文件所处位置的不同,分为两种:前台路径与后台路径。
       A前台路径

所谓的前台路径指的是由浏览器解析的代码中包含的路径,例如,html、css、js中的路径,及 jsp 文件中静态部分的路径(HTML 标签中的路径)。例如,html 及 jsp 文件中的<img src="",<a href="",<form action=""等标签中的路径;再如,css 文件中的 background:img(“”)等属性中的路径,js 文件中的 window.location.href=”” 等属性中的路径,都属于前台路径。

将前台路径转换为绝对路径的工作,是由浏览器自动完成的。该路径的作用是要为用户提交对某种资源的请求,是要查找并定位服务器中的某资源。简单来说,前台路径的作用是“查找”。

前台路径的参照路径是当前web服务器的根路径,也就是http://localhost:8086

       B后台路径

所谓后台路径是指,由服务器解析执行的代码及文件中所包含的路径。例如,java 代码中的路径、jsp 文件动态部分(java 代码块)中的路径、xml 等配置文件中的路径(配置文件是要被 java 代码解析后加载到内存的,其中的路径会出现在 Java 代码中)等。后台路径的参照路径是 Web 应用的根路径。
如 http://localhost:8086/springstudy。

将后台路径转换为绝对路径的工作,是由服务器自动完成的。该路径的作用是标识出该资源在服务器中的路径,以便客户端能够按照这个设定路径来查找相应资源。简单来说,后台路径的作用是“标识”。

        C、 后台路径特例

对于后台路径的参照路径有一个特例:当代码中使用 response 的 sendRedirect()方法进行重定向时,若其参照路径是以斜杠开头,则其参照路径不是 web 应用的根路径,而是 web服务器的根路径。

例如,执行 response.sendRedirect(“/show.jsp”);将会报 404 错误。因为其参照路径是Tomcat 的根,而非当前项目的根。所以若要使用重定向,就需要在路径上添加上项目名称:response.sendRedirect(request.getContextPath + “/show.jsp”);为什么这里是特例?因为 sendRedirect()方法可以重定向到其它应用,若不指定要跳转的应用,其将无法确定跳转方向。

不以斜杠开头的相对路径

不以斜杠开头的相对路径,无论是出现在前台页面,还是出现在后台 Java 代码或配置文件中,其参照路径都是当前访问路径的资源路径。即使是 response 的 sendRedirect()方法的参数路径,若不以斜杠开头,其也属于“以路径名称开头的相对路径”类,参照路径为当前访问路径的资源路径。

相对路径类型参照路径相对路径转为绝对路径的完成者
斜杠开头的前台路径当前web服务器的根路径,如http://localhost:8086浏览器
以斜杠开头的后台路径当前web应用的根路径 ,如http://localhost:8086/springstudyweb服务器
不以斜杠开头的相对路径当前web应用的根路径,如http://localhost:8086/springstudy浏览器/web服务器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值