路径

从一个点到另一个点的过程称为路径。
从一个起点到某个具体资源的过程称为访问路径,访问路径的最后一个斜杠(/)后面的是资源名称。
绝对资源路径是从起点http://开始到某个具体资源的前面的最后一个”/”结束的路径。
绝对访问路径:https://localhost:8080/blog/csdn/net/index.jsp
绝对资源路径:https://localhost:8080/blog/csdn/net/
资源名称:index.jsp
相对访问路径:/csdn/net/index.jsp
相对资源路径:/csdn/net/
绝对访问路径(URL)=绝对资源路径+资源名称
相对访问路径=相对资源路径+资源名称。
有相对访问路径就有参考路径,参考路径的前半部分一定是https://localhost:8080/。
绝对访问路径=参考路径+相对访问路径。

把访问路径是否可以独立完成资源准确定位的 作为判别标准,可以将路径分为绝对访问路径和相对访问路径。
绝对访问路径:给定的访问路径可以准确的定位到资源
相对访问路径:必须结合参照路径才能实现资源的定位

下面所说的相对路径都是指相对访问路径。


(1)以”/”开头的相对路径,开头的”/”表示根路径
a.前台路径
邮浏览器解析执行的代码中所包含的路径(出现在 css js html jsp 的路径就叫前台路径,因为浏览器访问服务器资源时会把css,js,html,jsp文件缓存到浏览器中,然后进行渲染,所以请求是从浏览器端发出的,自然由浏览器解析)(127.0.0.1=localhost=本机地址)
前台路径的参照路径是 web服务器的根路径
即:http://127.0.0.1:8080/,根路径下是多个项目。参考tomcat服务器,则根路径http://127.0.0.1:8080/ 代表webapps目录。
所以相对路径中开头的”/”即表示:http://127.0.0.1:8080/
转换工作由浏览器完成

b.后台路径
是由服务器解析执行的代码文件中所包含的路径(java 代码 ,jsp 文件中的动态部分,xml)
后台应用的参照路径是项目的根路径:
http://127.0.0.1:8080/项目名称/
所以相对路径中开头的”/”即表示:http://127.0.0.1:8080/项目名称/
可以看出,由服务器解析的根路径比由浏览器解析的多出一个”项目名称”节点,因为一个项目的根节点自然是这个项目的名称嘛。


(2)以路径名称开头的相对路径
路径名前面的空白是缺省的该资源文件的参照路径。除了请求转发外,其他的路径跳转方式的参照路径都是其绝对资源路径,不管是浏览器解析还是由服务器解析。

response 的sendRedirect() 方法可以完成重定向,其意思是让浏览器按照其指定的路径重新发一次请求,所以显然里面的路径自然由浏览器来解析,是前台路径。其参数路径开头的”/”表示当前web服务器的根。故此,此方法不仅仅可以实现在项目内部资源的跳转,还可以实现在实现在项目之间的跳转。
可以这样访问当前项目的其他资源:
response.sendRedirect(request.getContextPath()+”/otherServlet”);


总结:
1、如果使用多次”../”,最多返回至根目录。
如果是由浏览器解析,则最多返回到web服务器的根目录所在的路径,比如tomcat中的”…./webapps/”。
如果是由服务器解析,则最多返回到项目的根目录”webapp/”所在的路径,对应于发布后的路径”…./项目名/”,因为在服务器中不可能跳出该项目的范围。
项目发布后的路径中的节点 “项目名称” 对应于未发布前的webapp(WebRoot,WebContent)目录。
2、请求转发request.getRequestDispatcher(“路径名”).forward(request,response)中的路径一定是由服务器进行解析,因为它是在Java代码中。如果请求的资源文件中进行了转发,则在下一个资源文件中,由浏览器解析的路径的参照路径是上一个资源文件的参照路径,以此类推。
3、和浏览器解析不同,不管是请求转发还是其他的资源文件之间的跳转,由服务器进行解析的路径的当前路径(参照路径)一定是该文件的绝对资源路径。
4、除了请求转发,好像其他所有的路径跳转都是由浏览器来解析。
**5、**web.xml中的标签包含的是一个相对访问路径,它的参照路径是项目的根路径”…./项目名/”,对应于项目结构的”webapp”目录,可以把多重文件夹里的页面作为首页。该标签的原理利用了请求转发,当客户端请求该项目,也就是我们经常输入项目名来访问该项目的首页时,请求来到了该项目的根目录”/项目名”,即当前的参照路径是根目录,随后标签转发该请求到其包含的资源文件,该路径名是由服务器解析的,所以服务器找到了标签中包含的资源文件返回给浏览器。由于是转发,所以有浏览器解析的当前路径仍然保留在项目的根路径,所以我们看到浏览器的地址栏中的路径是项目的根路径。
**6、**src下的资源全都放在了WEB-INF目录下的classes文件夹里,WEB-INF目录下的文件只有服务器端才可以访问,之所以能够直接访问WEB-INF目录下的action或controller,是因为已经在配置文件中(Servlet或者DispatcherServlet)对请求进行了映射处理。映射后的当前路径是action(controller)所在的绝对资源路径,action(controller)是直接放在根目录下面的,即它的当前路径是(…/项目名/)
(猜的,因为我们可以在浏览器的地址栏中直接输入项目名+具体的action访问该action,并且action的父级目录只能是项目名目录,此外在action中以相对路径的方式访问项目中其他资源文件时的参照路径是项目根目录。可是action不是放在WEB-INF下的class文件夹里的吗?WEB-INF文件夹到底是怎样的一个特殊文件夹?)。
7、既然无法从外面直接获取WEB-INF文件夹中的资源,那么WEB-INF文件夹中的资源可以以相对路径的方式访问WEB-INF文件夹外面的资源吗?
答案是可以的。既可以通过服务器解析跳转也可以通过浏览器解析跳转,通过服务器解析跳转就不说了,根据绝对资源路径;通过浏览器解析路径跳转时的当前路径是项目的根目录所在的路径(可能跳转到该资源的方式是请求转发,所以保留了原来的参照路径),和action一样似乎都是直接放在根目录下,但是它不像action可以直接从浏览器端访问,应该是没有进行映射的原因。总之,它能
以浏览器解析的方式跳转出WEB-INF目录,但不能以浏览器解析的方式跳转进WEB-INF目录,只能通过请求转发(服务器解析)或者action跳转进来。

各种访问路径和路径跳转总结篇相关推荐

  1. Struts2 框架笔记主要对跳转路径,挎包跳转,拦截器进行应用,定义成员变量,收取客户端参数等详细说明

    MVC概述 1)MVC是一种编程思想,人为的将 web系统分为三个层次. 2)MVC好处:解耦合,提高系统的可维护型和可拓展性. M-model:数据模型层 (DAO service entity) ...

  2. vue打包后css路径_Vue打包后访问静态资源路径问题

    Vue打包后访问静态资源路径问题 Vue介绍中static文件夹里放的是静态资源目录,如图片.字体等. 我们发现运行npm run start后本地图片路径是没问题的,但是打包上传后会怎么样呢? 我们 ...

  3. 3个方法解决Windows无法访问指定设备路径或文件

    案例:Windows无法访问指定设备路径或文件 "朋友们,我的电脑平常用得好好的,今天使用时却突然显示无法访问指定设备文件,这是为什么呢?电脑显示无法访问指定路径或文件应该怎么解决呢?感谢回 ...

  4. 计算机管理windows无法访问指定设备,windows无法访问指定设备路径或文件如何解决...

    我们平时在使用电脑的时候,经常都会遇到这样那样的问题.比如说突然出现windows无法访问指定设备如何处理的提示该怎么办呢?别着急,有小编在接下来我就将win7无法访问指定路径的解决方法分享过大家,感 ...

  5. 计算机无法访问指定设备路径或文件怎么回事,电脑提示Windows无法访问指定设备路径或文件如何解决?...

    最近很多用户在反映,在使用电脑的过程中,弹出Windows无法访问指定设备路径或文件,您可能没有合适的权限访问这个项目的错误窗口,这是怎么回事呢?其实这是因为你的系统盘采用ntfs分区格式,并且没有设 ...

  6. xp系统无法连接到指定计算机名,winxp系统提示windows无法访问指定设备路径或文件如何解决...

    最近有很多winxp用户在右击我的电脑属性时,出现提示"windows无法访问指定设备路径或文件",这让用户很苦恼.那么遇到该问题时要如何解决呢?针对这一问题,小编今天就来为大家介 ...

  7. Win11提示Windows无法访问指定设备路径或文件的三种解决方法

    ​Win11提示Windows无法访问指定设备路径或文件怎么办?导致出现这一情况的原因有很多,相信有很多小伙伴们对于这一情况,都不太情况应该怎么办,对此今天小编就为大家带来三种解决方法,希望能够帮到你 ...

  8. Windows 无法访问指定设备,路径或文件。你可能没有合适的权限访问这个项目。

    Windows 无法访问指定设备,路径或文件.你可能没有合适的权限访问这个项目. 0. 背景 出现这个问题的背景如下: 电脑安装有金山毒霸 win10 系统 打开部分.exe文件情况报上述错 1. 报 ...

  9. 打开Setup.exe文件时,系统提示Windows 无法访问指定设备,路径或文件,你可能没有合适的权限访问这个项目。

    打开Setup.exe文件时,系统提示Windows 无法访问指定设备,路径或文件,你可能没有合适的权限访问这个项目. 问题描述 解决方案(可供参考) 问题描述 这两天想安装一些文件发现系统老是弹出这 ...

最新文章

  1. POJ1276Cash Machine
  2. 基于REST的MVC架构设计与实现
  3. 网站初学笔记3-HTML实用元素5
  4. LinkedList中查询(contains)和删除(remove)源码分析
  5. excel 插入计算机用户名,Excel中进行设置个性化用户名的操作方法
  6. linux 高性能服务排查方式
  7. 不能装载文档控件。请在检查浏览器的选项中检查浏览器的安全设置_Excel基础—文件菜单之设置信息...
  8. 【腾讯优测干货分享】从压测工具谈并发、压力、吞吐量
  9. ZOJ3210 A Stack or A Queue?【序列】
  10. SINet: 使用空间压缩模块和信息遮挡编码器的极轻量人像分割模型
  11. csgo准星设置代码_csgo准星参数代码
  12. ImageNet下载资源(2017年)
  13. JUnit测试提示 java.lang.Exception: No public static parameters method on class
  14. 适用于Win和Mac的专业电脑数据恢复软件EasyRecovery易恢复14
  15. IDEA重置maven配置的问题解决
  16. 高精度数字高程数据1m的dem
  17. idea在mapper的xml文件中打不出‘.‘,idea在mapper的xml文件中打不出.,idea在mapper的xml文件中打不出小数点的问题
  18. 工欲善其事 必先利其器-——Idea使用(1)-初次识别
  19. 将wav音频文件转化为16k Hz 单通道的文件
  20. 在.NET中隐藏带有只读Web路径的Web shell

热门文章

  1. Java使用阿里大鱼实现发送短信
  2. 文件服务器设置共享后拒绝访问,设置DAG共享见证服务器“拒绝访问”报错解决方法...
  3. 总结造纸业中水回用方案及处理工艺
  4. 关于《后浪》的B站弹幕分析总结(三)——怎么制作好看的交互式词云
  5. redis排行榜_java_【Redis 源码日志】- Redis 应用:积分排行榜 - Java 技术驿站-Java 技术驿站...
  6. 风口还是泡沫?GameFi 能否再现“DeFi盛夏”?
  7. 设置navigationBar的背景为透明,总结自苹果官方文档
  8. Flutter NavigationBar 优雅的实现底部导航栏菜单
  9. PRVG-1101 PRVF-4664 PRVF-4657
  10. 数据库系统概论之关系数据库标准语言 SQL