一篇打通java路径问题

2023-05-16

访问路径问题

1.1访问路径的组成

​ URL,统一资源定位符,用于定位资源的一种方式。通常的 URL 资源访问路径由两部分 构成:资源路径资源名称。资源名称指的是要访问资源的直接名称,如 show.html,或与 要访问资源存在映射关系的间接名称,如 show.do。而资源路径,则是通过该路径则可以定 位到指定的资源,即资源路径是指在 URL 资源访问路径中除了资源名称以外的其它部分。

根据以上规则,URI,统一资源标识符,也可以分为资源路径资源名称两部分。

一般情况下,在 URL 或 URI 中,最后一个斜杠后的部分为资源名称,而其它部分则为资源路径
路径
请添加图片描述

根据“资源路径是否可以独立完成资源准确定位”的判别标准,可以将访问路径分为绝对路径相对路径

1.2绝对路径

​ 绝对路径,是指根据给出的访问路径可以准确定位到资源的路径。例如,你要告诉对方你现在的位置,你说:我现在在北京故宫游客A入口处。这就是个绝对地址,听者根据你所述地址,可以准确的找到你。

而对于计算机中 Web 应用的绝对路径,则是指带访问协议的路径,即 URL。例如下面 的路径就是一个带有 http 访问协议的绝对路径。

http://127.0.0.1:8080/primary/index.jsp

1.3相对路径

​ 相对路径,是指仅根据访问路径无法准确定位资源的路径。相对路径必须要结合其参照路径才可组成可以准确定位资源的绝对路径。参照路径的不同,所形成的可以准确定位资源的绝对路径也是不同的。在进行资源访问时,必须要将相对路径转换为绝对路径才可完成资源的准确定位。它们的关系如下:

绝对路径 = 参照路径 + 相对路径

​ 例如,你要告诉对方你现在的位置,你说:我在人民公园的正门门口。这就是个相对地 址。因为很多城市都有人民公园,每个人民公园也都有正门。当对方不知道你在哪个城市时, 他是无法准确定位你的。当然,你只所以不说是哪个城市,是因为这里存在一个默认的参照 路径:与听者在同一个城市。听者会将你所说的相对地址,自动转换为一个绝对地址:与听 者在同一城市的人民公园正门门口。

​ 在 Web 应用中,浏览器或服务器自动不同相对路径添加不同参照路径,将相 对路径转换为绝对路径,以定位这个资源。作为程序员,必须要理解并掌握浏览器或服务器 为相对路径添加参照路径的规则,这样才能在编程时更为准确地书写相对路径。

​ 相对路径的写法有两种:一种是以斜杠开头的相对路径,一种是以路径名称开头的相对 路径。根据相对路径是否以斜杠开头,且路径出现的文件的不同,其默认的参照路径是不 同的。这是我们学习的重点,是路径问题中最容易出错的地方:确定相对路径的参照路径。

1.3.1以斜杠开头的相对路径

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

A、 前台路径

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

前台路径的参照路径是 Web 服务器的根路径,即 http://127.0.0.1:8080。

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

B、 后台路径

​ 所谓后台路径是指,由服务器解析执行的代码及文件中所包含的路径。例如,java 代码 中的路径jsp 文件动态部分(java 代码块)中的路径xml 等配置文件中的路径(配置文件是要被 java 代码解析后加载到内存的,其中的路径会出现在 Java 代码中)等。

后台路径的参照路径是 Web 应用的根路径。如 http://127.0.0.1:8080/primary。

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

C、 后台路径特例

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

​ 例如,执行 response.sendRedirect(“/show.jsp”);将会报 404 错误。因为其参照路径是 Tomcat 的根,而非当前项目的根。所以若要使用重定向,就需要在路径上添加上项目名称:

response.sendRedirect(request.getContextPath + “/show.jsp”);

为什么这里是特例?因为 sendRedirect()方法可以重定向到其它应用,若不指定要跳转的应用,其将无法确定跳转方向。

1.3.2 以路径名称开头的相对路径

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

1.4总结

相对路径分类

相对路径分类

在后台,/开头代表项目的根

两种解析

写路径步骤

请添加图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一篇打通java路径问题 的相关文章

  • 手机在输入界面进入退出导致手机重启 (Watchdog重启问题分析)

    9820E E516横屏项目 xff0c 手机在使用过程中出现framework crash 通过log工具发现是 WATCHDOG KILLING SYSTEM PROCESS Blocked in monitor com android
  • 利用python模拟post请求实现USVN批量添加用户组

    参考知乎链接 xff1a https zhuanlan zhihu com p 140372568 环境 xff1a python3 7 请求头 xff0c 请求地址都可以在开发者模式的网络中抓取 xff0c 此处需要登录到USVN才能获取
  • timeout的一些常规解决办法

    一般来说timeout并不会对服务器造成什么大的影响 xff0c 但如果timeout过多导致进程文件描述符不够用或服务器端口不够用就需要注意了 下面是一些常规的timeout解决办法 注意 xff1a 不是长久之计 etc sysctl
  • 如何删除ubuntu中的keyring

    按照system gt preferences gt passwords and encryption keys顺序 xff0c 找到下面这个界面删除Passwords 下次在ubuntu要求输入初始keyring 密码时直接回车 xff0
  • ubuntu16.04桌面版开机进入命令行模式

    我们大部分个人的linux系统计算机都是使用图形界面模式的操作 xff0c 有些时候我们也可以在纯命令行模式下进行操作 xff0c 这里给大家介绍一个在开机启动的时候进入命令行的两种方法 ubuntu 16 04LTS系统 方法 步骤 系统
  • 8本推荐游戏开发书籍

    很多刚刚接触游戏开发的朋友经常问我 xff1a 如何开始学习游戏开发 xff1f 我从事游戏开发行业很多年了 xff0c 坦率地讲 xff0c 开发游戏充满挑战性 xff0c 需要开发人员具备大量的技能与积极的创新精神 希望这篇小文能帮助朋
  • GNOMe面板丢失问题解决

    今天用安装虚拟机时屏幕太小 xff0c 安装框又不能向上拉 xff0c 导致我看不到下一步图标 xff0c 一怒之下 xff0c 把底面板给删了 xff0c 从此走上了麻烦之路 xff01 没有底面版 xff0c 很多最小化的图标都找不到
  • Ubuntu操作系统综合贴

    本文转载自卡饭论坛http bbs kafan cn thread 1551594 1 1 html xff0c 作者 xff1a ubuntu2011 Linux简介及安装 Linux是什么 xff1f Linux是一种自由和开放源代码的
  • Spring4+Hibernate4+SpringMVC整合配置

    这里是Spring4 3 9 43 Hibernate4 0 2的整合配置 配置web xml span class hljs pi lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 g
  • Android Keystore System介绍

    翻译 sdk docs training articles keystore html q 61 keystore q 61 keystore KeyStore KeyStore负责维护加密密钥及其所有者 可以通过修改JAVA HOME l
  • html5之div居中

    效果如图 xff1a 代码如下 xff1a navright display inline block vertical align middle width 100 height 100 min height 400px border 1
  • 服务器后台自动运行程序和停止

    后台运行命令 如何后台运行python程序 关键的命令 xff1a nohup 只需要输入下面的命令就可以在后台一直执行python程序啦 nohup python u test py gt test log 2 gt amp 1 amp
  • 谷歌浏览器(Chrome)插件安装失败的解决办法

    最新的谷歌浏览器下载完成以后进行安装插件时 xff0c 可能会提示 无法从该网站添加应用 扩展程序和用户脚本 的提示 这是因为谷歌比较重视用户信息安全性的 xff0c 所以不希望用户随便安装一些除官方商店之外的东西 xff0c 以免造成用户
  • Docker-CentOS开启防火墙firewalled映射Docker端口

    开启docker的Tomcat容器后 xff0c 启动 docker run d p 8080 8080 tomcat 访问不了Tomcat 查看防火墙所有开放的端口 firewall cmd zone 61 public list por
  • mysql 5.6 utf-8 编码设置

    mysql 5 5 utf 8编码 正确设置的方法 xff1a 在 etc my cnf mysqld utf 8 设置 character set server 61 utf8 collation server 61 utf8 gener
  • 文件内容查找方式

    第一种 xff0c 使用windows自带的查找工具 搜索工具里面有 高级选项 xff0c 选择 文件内容 然后进行搜索即可 第二种 xff0c 使用命令行 在需要进行搜索的文件夹下使用命令行 xff1a Get span class to
  • Image打包流程-Android10.0编译系统(四)

    摘要 xff1a 本节主要来进行Android10 0 Image打包流程 xff0c 理解system img是如何打包的 1 概述 前面我们讲完了Android10 0 编译的初始化和make的完整流程 xff0c 从make中我们看到
  • Ubuntu18.04安装踩坑与排错记录

    很早以前就想装Ubuntu玩玩了 xff0c 今天终于动手实现了这个想法 但过程并不顺利 xff0c 所以记录一下 对他人可能借鉴意义不大 xff0c 但对自己来说还是有记录价值的 机子是之前淘汰掉的华硕笔记本 xff08 14年买的 xf
  • Jupyter Notebook FileNotFoundError: [WinError 2] 系统找不到指定的文件

    问题描述 xff1a 通过Anaconda新创建环境 tfenv python 61 3 5 5 并依次安装tensorflow ipython xff0c jupyter xff0c matplotlib这三个包及其依赖包 然后在该环境下
  • 命令提示符(cmd)的一些简单用法

    命令提示符 xff08 cmd xff09 快捷键 xff1a win 43 r 切换位置 xff1a 盘名 xff1a 进入目录 xff1a cd 43 文件夹名 xff08 tab可以切换文件夹 xff09 只要路径写对cd可以访问多级

随机推荐

  • Java中,&&与&,||与|的区别

    1 1 逻辑运算符 amp amp xff08 短路与 xff09 xff0c amp 用法 xff1a amp amp 和 amp 都是表示与区别是 xff1a amp amp 若第一个条件不满足 xff0c 后面条件就不再判断 而 am
  • Java基础类(六):Collections工具类

    目录 1 Collections 1 1 排序操作 xff1a xff08 均为static方法 xff09 1 2 查找 替换 1 3 同步控制 1 4 返回不可变集合 1 Collections Collections 是一个操作 Se
  • Bash脚本:采用for循环重复执行某条指令100次

    1 新建一个脚本文件 直接vim for sh就可以 2 编辑脚本文件 bin bash for i 61 1 i lt 61 100 i 43 43 do test 想要重复执行的命令 xff09 done 3 将脚本文件变为可执行文件
  • Android.mk 和 CMakeLists.txt 的转换规则

    Android mk 和 CMakeLists txt 都是用来构建 Android 应用程序或库的工具 但是它们有不同的语法和规则 xff0c 所以将一个 Android mk 文件转换成一个 CMakeLists txt 文件需要一些注
  • EFI Shell 命令参考

    对于使用使用DOS的人来说 xff0c 会使用DOS命令是最基本的 xff0c 而在当今即将盛行的EFI BIOS来说 xff0c 就有了新的变化 xff0c 如何操作EFI Shell 呢 xff1f 至此我贴出了EFI Shell 的命
  • mysql出现提示错误10061的解决方法

    MySQL出现提示错误10061的解决方法 错误提示 xff1a 今天打开Navicat连接mysql突然提示 2003 Can t connect to MySQL server on localhost 10061 xff09 的错误提
  • 3分钟爬取全网10W+爆款,脚本无偿分享,零基础拿来直接就能用!

    市面上的新媒体资料都是过去时了 xff0c 只有最新的爆款文才是新媒体人的福音 xff01 三分钟爬取全网10W 43 爆款文 xff01 爬虫脚本无偿分享 xff0c 拿来就能直接用 xff0c 零基础也能用 xff01 需要的看图 xf
  • 使用Wake On Lan远程唤醒

    使用Wake On Lan远程唤醒 客厅里的那台htpc xff0c 在无下片任务的时候 xff0c 大部分时间里都在白白浪费电 主板是支持wake on lan的 xff0c 把它弄成可以远程控制会比较经济 首先要设置bios xff0c
  • .gitignore文件作用

    gitignore文件用于在将文件提交到git暂存区时 xff0c 指定将哪些文件排除 xff1b 1 gitignore文件基本用法 在 git文件所在的目录创建 gitignore 文件 文件内容如下 span class token
  • 《计算机应用基础》形考作业及答案

    国家开放大学 计算机应用基础 形考作业 及 答案 题目1 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 兔子bu蹬鹰 在Word 2010中编辑文本时 编辑
  • php操作redis代码

    lt php Redis缓存操作 64 author hxm 64 version 1 0 64 since 2015 05 04 class RCache extends Object implements CacheFace priva
  • C++实现归并排序

    C 43 43 实现归并排序 span class token comment span span class token comment main cpp span span class token comment MergeSort s
  • LinuxNote 第二章 新手必须掌握的Linux命令

    目录 第二章 新手必须掌握的Linux命令2 1 Shell2 2 命令格式及帮助命令 man2 2 1 命令格式2 2 2 帮助命令 man 2 3 常用的系统工作命令2 3 1 echo2 3 2 date2 3 3 reboot2 3
  • Linux PXE无盘工作站

    关于PXE无盘工作站系统的简介 PXE无盘工作站系统是指由一台或多台 系统服务器 和多台 PXE客户端 无盘工作站 通过 交换机 相连组成的局域网系统 xff08 图1 xff1a 无盘工作站系统部署拓扑图 xff09 系统服务器 xff1
  • 环形缓冲区的实现原理

    http blog chinaunix net uid 7491192 id 2051200 html 在通信程序中 xff0c 经常使用环形缓冲区作为数据结构来存放通信中发送和接收的数据 环形缓冲区是一个先进先出的循环缓冲区 xff0c
  • 计算任意二叉树T中其数据域大于等于x的结点个数并返回该值

    span class token macro property span class token directive keyword include span span class token string lt stdio h gt sp
  • 使用Mybatis这篇就够了

    第一章 框架概述 1 1 三层架构 界面层 xff1a 和用户打交道的 xff0c 接收用户的请求参数 xff0c 显示处理结果的 xff08 jsp xff0c html xff0c servlet xff09 业务逻辑层 xff1a 接
  • Web项目中访问路径问题

    访问路径问题 1 1访问路径的组成 URL xff0c 统一资源定位符 xff0c 用于定位资源的一种方式 通常的 URL 资源访问路径由两部分 构成 xff1a 资源路径与资源名称 资源名称指的是要访问资源的直接名称 xff0c 如 sh
  • 解决Navicat远程登录服务器的Mysql服务Password authentication failed

    常规用的是grant all privileges on to root 64 identified by zhaiwenhai 这里设置的密码 SSH用的是服务器的用户名和密码来进行验证
  • 一篇打通java路径问题

    访问路径问题 1 1访问路径的组成 URL xff0c 统一资源定位符 xff0c 用于定位资源的一种方式 通常的 URL 资源访问路径由两部分 构成 xff1a 资源路径与资源名称 资源名称指的是要访问资源的直接名称 xff0c 如 sh