Javaweb基础之工程路径

大家好,这里是教授.F

引入:

        工程路径有一个知识点需要注意:就是相对路径。所谓相对路径就是依赖当前位置: 相对路径的定位依赖于当前位置或参考位置。

使用相对路径来解决, 一个非常重要的规则:页面所有的相对路径,在默认情况下,都会参考当前浏览器地址栏的路径 http://ip:port/工程名/ + 资源来进行跳转。

        实例讲解:

        假设有一个 Web 应用程序,部署在本地服务器上,地址为 http://localhost:8080/myapp/。在该应用程序中,有一个页面 index.html,位于 http://localhost:8080/myapp/index.html

index.html 页面中,有一个相对路径引用了一个 CSS 文件 styles/main.css,则默认情况下,该相对路径会相对于 index.html 的路径来进行解析。

        所以我们可以在index.html页面中直接写成<form action="styles/main.css" method="post">

浏览器会自动对相对路径进行解析,本质上就是 http://localhost:8080/myapp/style/main.css

这样就是代码简洁很多。

弊端:

        

如上面的图。如果我们访问了a.html文件,想直接跳转到my.css页面中,使用相对路径是不行的,因为此时的相对路径是http://localhost:8080/webpath/d1/d2。如果直接这样写:my.css是跳转到的。这里就需要base标签来指定路径。

base标签:

        1. base 标签是 HTML 语言中的基准网址标记,它是一个单标签,位于网页头部文件的head标签内

         2. 一个页面最多只能使用一个 base 元素,用来提供一个指定的默认目标,是一种表达路径和连接网址的标记。

         3. 常见的 url 路径形式分别有相对路径与绝对路径,如果 base 标签指定了目标,浏览器将通过这个目标来解析当前文档中的所有相对路径,包括的标签有(a、img、link、form)

        4. 也就是说,浏览器解析时会在路径前加上 base 给的目标,而页面中的相对路径也都转换成了绝对路径。使用了 base 标签就应带上 href 属性和 target 属性

所以对于上面的例子来说,在html文件中就要写上:

        <base herf="http://localhost:8080/web/css/mycss">

补充:

        1.特别说明:重定向 response.sendRediect("/"); 这条语句虽然是在服务器执行的,但是, 服务器是把斜杠 / 发送给浏览器解析。因此得到地址 http://ip[域名]:port/

        2. 在实际开发中,路径都使用绝对路径,而不是相对路径

        3. 在 web 中 / 斜杠 如果被浏览器解析,得到的地址是:http://ip[域名]:port/

                比如:<a herf="/"></a>这样表示是http://localhost:端口号/

         4. 在 web 中 / 斜杠 如果被服务器解析,得到的地址是:http://ip[域名]:port/工程路径/,你也可以理解成 /工程路径/ 下面的几种情况就是如此:

                ● /servelturl ● servletContext.getRealPath("/"); ==> 是得到执行路径/工作路径

                ● request.getRequestDispatcher("/");

         5. 在 javaWeb 中 路径最后带 / 和 不带 / 含义不同, 一定要小心,

                 比如  <a herf="servlet03"></a>: servlet03 表示资源

                        <a herf="/a/servlet03"></a>: servlet03 表示路径

        在编写资源路径时: , 考虑这么几点

        (1) 这个路径 前面有没有 /

        (2) 这个路径 在哪里被解析 [服务器还是浏览器] , 如果前面有/ , 并且是在浏览器被解析的 被解析成 http://ip:port/ , 如果在服务器端被解析 , 被解析成/工程路径/

         (3) 如果这个路径,前面没有 / , 并且在浏览器被解析,则以浏览器当前的地址栏去掉资源部分,作为一个相对路径.

        (4) 这个路径,最后有没有 / , 如果最后有/ 表示路径, 如果没有/ 表示资源

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/20372.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

H6922 2.8C-40V (最低启动电压2.5V)升压BOOST恒压芯片 5V12V24V升压IC

H6922升压BOOST恒压芯片是一款2.8C-40V &#xff08;最低启动电压2.5V&#xff09;升压BOOST恒压芯片 5V12V24V升压IC 首先&#xff0c;H6922的宽输入电压范围&#xff08;2.8-40V&#xff09;和低启动电压&#xff08;最低2.5V&#xff09;使其能够适应不同复杂的电源环境。无…

[书生·浦语大模型实战营]——训练自己的小助手认知+应用部署到 OpenXLab+复现多模态微调

1.训练自己的小助手认知 微调后的回答&#xff1a; 微调前的回答&#xff1a; 2.应用部署到 OpenXLab 上传的自我认知模型 应用部署在OpenXLab&#xff08;比上次部署方便不少&#xff0c;文档写的更清楚了&#xff0c;棒棒&#xff09;,链接如下应用链接 3.复现多模态…

普通人想自学Python?没弄清楚这些,我劝你还是算了吧......

自学Python&#xff0c;为何你值得一试&#xff1f; 在这个瞬息万变的时代&#xff0c;我们常常听到这样的声音&#xff1a;“自学Python&#xff1f;一般人我还是劝你算了吧。” 这样的言论&#xff0c;仿佛是一堵高墙&#xff0c;阻挡着那些怀揣梦想、渴望探索的普通人。然…

C++模板元编程

C模板元编程 为什么需要模板函数&#xff1f; 避免重复写代码 模板函数定义 使用template <class T> 或者template <typename T>其中T是可以变成任何类型调用时候T会替换成需要的类型 twice<int>会将T替换成int template <class T> T twice(T t) {re…

vue3+ts+element-plus 标签红色波浪形(属性不全)

新建文件shims-element-plus.d.ts,具体配置如下 import {ElAutocomplete,ElBadge,ElBreadcrumb,ElBreadcrumbItem,ElButton,ElCard,ElCheckbox,ElCheckboxGroup,ElCol,ElCollapse,ElCollapseItem,ElColorPicker,ElConfigProvider,ElContainer,ElDatePicker,ElDialog,ElDivide…

谷粒商城实战(031 业务-秒杀功能2)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第315p-第p318的内容 秒杀上架 定时上架功能 EnableAsync 异步 EnableScheduling 定时调度 Configuration 配置类 创建上架定时任务类和方法 …

408数据结构-图的存储与基本操作 自学知识点整理

前置知识&#xff1a;图的基本概念 图的存储必须完整、准确地反映顶点集和边集的信息。根据不同图的结构和算法&#xff0c;采用不同的存储方式将对程序的效率产生相当大的影响&#xff0c;因此选取的存储结构应适合于待求解的问题。 图的存储 邻接矩阵法 所谓邻接矩阵存储&a…

每天一个数据分析题(三百四十三)

同环比是帮助阅读者了解维度项表现水平有没有随着时间的推移而得以增长提升&#xff0c;以下对于同环比的说法正确的是&#xff1f; A. 同环比计算方法一般适用于对长周期业务行为结果的观测 B. 若产品具备季节属性特征&#xff0c;则应优先使用同比计算方法 C. 上期值一般指…

利用OBS+VLC+ASS插件实现多路rtsp慢直播流轮播播放

利用OBS+VLC+ASS插件实现多路rtsp慢直播流轮播播放 解决方案速览软件安装第一次使用OBS界面(不是第一次使用可以跳过该步骤)添加VLC视频源利用OBS多个**场景**特性实现布置多个VLC-rtsp视频流场景轮播解决方案速览 利用OBS进行本地直播画面的构建。添加VLC视频源:安装完VLC后…

c++框架介绍

C源文件后缀名.cc/.cpp&#xff0c;头文件后缀名.hh/.hpp C&#xff1a;编译使用g命令 3.C输入输出流比c中的printf更加简化 4.日志系统&#xff1a;拿到一个新的程序&#xff0c;怎么读取借助于日志系统&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&…

了解m4s格式

正常在hls V7 和 DASH中都会使用m4s存放数据。他们使用fmp4的方式来存放信息&#xff1a; fmp4格式 &#xff1a; 一、hls V7介绍 1. 包含的文件&#xff1a; 2. prog_index.m3u8中 指明了 init.mp4与 上面各个.m4s文件的关系&#xff0c;具体内容为&#xff1a; 其中init.mp…

USB - 进入Suspend状态和Cable长短的关系

USB 电缆的长度会对电流产生影响&#xff0c;但这主要是由于电缆的电阻造成的。下面是其工作原理&#xff1a; 1. 电缆电阻&#xff1a; USB 电缆越长&#xff0c;电阻越大。这种电阻会导致电缆上的电压下降&#xff0c;从而影响设备端的可用电压水平。 2. 电压下降&#xff1a…

[数据集][图像分类]轮胎纹理识别裂纹和正常轮胎分类数据集1028张2类别

数据集类型&#xff1a;图像分类用&#xff0c;不可用于目标检测无标注文件 数据集格式&#xff1a;仅仅包含jpg图片&#xff0c;每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数)&#xff1a;1028 分类类别数&#xff1a;2 类别名称:["cracked","norma…

容器技术基础理论与常用命令:必知必会,效率翻倍!

如何利用容器技术提升你的工作效率&#xff1f;掌握基础理论和常用命令是必不可少的&#xff0c;本文将为你全面介绍容器技术&#xff0c;并教你必知必会的技能&#xff0c;让你工作、学习效率翻倍&#xff0c;对于网络安全工作者也是必不可少的技能&#xff01; 0. 引言 学习…

【Mac版】Java生成二维码

软件版本 IntelliJ IDEA&#xff1a;2023.2 JDK&#xff1a;17 Tomcat&#xff1a;10.1.11 Maven&#xff1a;3.9.3 技术栈 servlet谷歌的&#xff1a;zxing 生成普通的黑白二维码在二维码中间添加一个小图标 github开源项目&#xff1a;qrcode qrcode开源项目的内部是基于z…

一些关于深度聚类以及部分对比学习的论文阅读笔记

目录 资料SwAV问题方法方法的创新点为什么有效有什么可以借鉴的地方聚类Multi-crop 代码 PCL代码 Feature Alignment and Uniformity for Test Time Adaptation代码 SimSiam 资料 深度聚类算法研究综述(很赞&#xff0c;从聚类方法和深度学习方法两个方面进行了总结&#xff0…

OpenEuler22.03 LTS自动安装单机版OpenGauss 5.0.2脚本

1,将脚本和opengauss软件包放到同一个目录下(不要放到/root下面,建议放到/opt/soft下面目录权限要有755),不需要进行解压缩,安装包下载地址如下: 软件包 | openGauss 2.规划好gs的数据目录,提前创建好目录,例如放到/data/guassdb/data下面,你只需要提前创建好/data就行了 3.…

STL中stack的使用

目录 一、stack类介绍和使用 stack类介绍 stack类定义 stack类常见构造函数 stack数据操作 empty()函数 top() pop() 和 push() 函数 size()函数 swap()函数 一、stack类介绍和使用 stack类介绍 1.stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下…

Flutter 中的 IconTheme 小部件:全面指南

Flutter 中的 IconTheme 小部件&#xff1a;全面指南 Flutter 是一个功能丰富的 UI 开发框架&#xff0c;它允许开发者使用 Dart 语言来构建跨平台的移动、Web 和桌面应用。在 Flutter 的丰富组件库中&#xff0c;IconTheme 是一个用于设置应用中图标主题的小部件&#xff0c;…

Eclipse语言编程:深入探索与实战应用

Eclipse语言编程&#xff1a;深入探索与实战应用 在编程的世界里&#xff0c;Eclipse以其强大的功能和灵活的扩展性&#xff0c;赢得了广大开发者的青睐。而Eclipse语言编程&#xff0c;更是将这一平台的优势发挥得淋漓尽致。本文将从四个方面、五个方面、六个方面和七个方面&…