jsp中的basePath和path (绝对路径 相对路径)(重要)

通达信缠论中枢自动识别与画线实战指南 本文详细介绍了通达信缠论中枢自动识别与画线公式的实战应用。该工具通过严谨的算法逻辑,自动在K线图上标记出符合缠论定义的中枢区间,帮助投资者摆脱繁琐的手工画图,聚焦于价格与中枢的互动关系,从而高效识别趋势延续、背驰及第三类买卖点,提升缠论分析与交易决策的效率。 阅读详情

https://blog.youkuaiyun.com/baidu_37107022/article/details/75233392

转载请注明原文出处:http://blog.youkuaiyun.com/baidu_37107022/article/details/75233392


在JSP中的如果使用 “相对路径” 则有可能会出现问题.

因为网页中的 “相对路径” , 他是相对于 “URL请求的地址” 去寻找资源. 
上面这句话是什么意思呢 ?

举个例子:

假如我们有一个项目: MyApp

在该项目下, 有一个jsp文件夹 
该文件夹下包括: 
    login.jsp    // 登陆页面 
    register.jps // 注册页面
  • 1
  • 2
  • 3
  • 4

我们在浏览器中输入地址 (注意: 地址的内容):

http://localhost:8080/MyApp/jsp/login.jsp 
  • 1

这时候, 浏览器会链接到 “登陆页面” (login.jsp)

在login.jsp页面中有一个注册链接:

<a href="jsp/register.jsp">注册用户 </a>
  • 1

那么,如果我们点击这个链接,就会在浏览器地址栏中, 出现如下错误链接:

http://localhost:8080/MyApp/jsp/jsp/register.jsp
  • 1

为什么会出现”/jsp/jsp/register.jsp”呢?

因为, 网页中的”相对链接”, 是相对于你所 “请求的URL路径” 所决定的.

因为这里请求路径是:http://localhost:8080/MyApp/jsp/login.jsp 
那么, 浏览器 就会在这个路径下(即:http://localhost:8080/MyApp/jsp/)去找jsp/register.jsp

所以就会出现如下错误内容: 
http://localhost:8080/MyApp/jsp/jsp/register.jsp

上面的问题,就是调用页面和被调用页面的URL不同所造成的

此类错误也常常会出现在2个页面之间进行 “转发”(forward) 操作的时候。 
因为forward是在后台进行的,对客户端来说是透明的。(即: URL不改变,而数据内容却是另一个页面返回来的。。。)

那么如何解决这问题呢?

方法一:直接采用绝对路径 (不推荐)

在JSP页面端,获得本项目的绝对地址(如果你的项目叫MyApp,那么获得到的地 
址就是 http://localhost:8080/MyApp/):

代码如下:

<!-- **************方法一***************** --> 
<%@ page language="java" pageEncoding="GBK"
    contentType="text/html;charset=gbk" isELIgnored="false"%>
<%
    String path = request.getContextPath();
    // 获得本项目的地址(例如: http://localhost:8080/MyApp/)赋值给basePath变量 
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
    // 将 "项目路径basePath" 放入pageContext中,待以后用EL表达式读出。 
    pageContext.setAttribute("basePath", basePath);
%>
<html>
    <head>
    </head>
    <body>
        <a href="${pageScope.basePath}jsp/register.jsp">
    </body>
</html>
<!-- *************************************-->
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

我们可以看到,在标签 <a>中的href属性内,我们直接采用了 “本项目路径 ${pageScope.basePath}” 加上 "jsp/register.jsp" , 从而构成一个绝对路径(即: http://localhost:8080/MyApp/jsp/register.jsp)

但是这样做有一个很不好的地方,那就是我们必须要在每个链接的前面都要加上“${pageScope.basePath}”

如果这样做的话,将是一件很可怕的事情。

方法二: 利用html中的 <base>标签(推荐)

下面是对html中的 <base>的介绍:

base 元素可规定页面中所有链接的基准 URL 

默认情况下,页面中的链接(包括样式表、脚本和图像的地址)都是相对于当前
页面的地址(即:浏览器地址栏里的请求URL)。 
  • 1
  • 2
  • 3
  • 4

我们可以使用 <base>标签中的href属性来设置,所有的“相对基准 URL”。

上面说的是什么意思呢?我们来看看代码就知道咯~~

这是JSP端的代码 ,下面的代码 (十分类似上面 “方法一” 中的JSP代码) 
但是这里我们并没有采用 ${pageScope.basePath}+”相对路径地址” 的方法, 
而是采用了html文件中的 <base>标签:

代码如下:

<!-- *************JSP代码******************-->
<%@ page language="java" pageEncoding="GBK"
    contentType="text/html;charset=gbk" isELIgnored="false"%>
<%
    String path = request.getContextPath();
    // 获得项目完全路径(假设你的项目叫MyApp,那么获得到的地址就是http://localhost:8080/MyApp/): 
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<html>
<head>
    <!-- base需要放到head中 -->
    <base href=" <%=basePath%>">
</head>
    <!-- 这里我们就可以直接使用相对路径(即: 相对于base标签) -->
    <a href="jsp/login.jsp">Login </a>
</html>
<!-- *************************************-->
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

大概看完了上面的代码,或许您还是有些疑惑 
不过当您看到了,下面的代码,可能就豁然开朗了。

当我们去执行上面的那段JSP代码后,我们可以在浏览器中可以查看,他所返回给客户端的html代码: 
执行完上述JSP后,所返回的html代码如下:

<html>
<head>
<base href="http://localhost:8080/MyApp/">
</head>
<!-- // 设置了 <base>后,相对路径,相对于的就是base中的路径,而不再是浏览器
地址的请求路径啦~~~  -->
<a href="jsp/login.jsp">Login </a>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

我们可以看到JSP返回的html代码中,包含了 <base href="http://localhost:8080/MyApp/">内容。

也就是说,在本html文件中,遇到的所有 “相对链接(例如: <a href="jsp/login.jsp">)”,都是相对于base 路径(即:http://localhost:8080/MyApp/),所以我们就可以进行的使用 相对链接,而不必担心, 转发操作(forward)或 请求地址不同不同所造成的页面无法找到的错误啦~(即:HTTP: 404)。。。

Python量化投资入门教程:从零构建你的第一个交易策略 量化投资教程以数学模型和计算机程序实现超额收益,选用Python工具链完成数据获取、策略构建及回测。通过移动平均线交叉策略示例,展示数据预处理、信号生成、收益计算及可视化全流程,结合收益率、最大回撤和夏普比率评估策略,并建议参数优化与策略融合提升稳健性。 阅读详情

相关推荐

HFSS 3D Layout一键导入PCB,高效搞定微带线损耗仿真

在高速PCB设计中,信号完整性与电磁仿真是确保链路质量的关键环节。传统的HFSS手动建模流程繁琐且极易出错,尤其面对微带线、带状线等高频结构时,叠层参数、铜箔粗糙度等细节难以精准还原,导致仿真结果与实测偏差较大。HFSS 3D Layout模块提供了从EDA工具直接导入PCB文件的能力,完整保留走线、过孔、叠层及材料属性,结合精确的介质损耗模型与端口设置,大幅缩短建模时间并提升仿真精度。该技术广泛应用于DDR、SerDes等高速数字链路的设计验证,以及SI/PI工程师对PCB损耗性能的快速评估。本文从导入操

weixin_29191081的博客 254

jsp中各种path

当前jsp访问地址为:http://localhost:8080/app/test/contextPath.jsp   /app   String path = request.getContextPath();     http://localhost:8080/app/   String basePath = request.getScheme()+"://"+reques...

new_jeffer的专栏 218

多任务学习中的过拟合陷阱:动态停止训练机制详解与避坑指南

本文深入剖析了多任务学习中因任务过拟合不同步导致的性能下降问题,并详细介绍了动态停止-继续训练机制。该机制通过为每个任务设置独立的训练开关,基于验证集性能动态控制其梯度更新,有效缓解了任务间负迁移,是提升多任务模型整体泛化能力的关键策略。

happy2的博客 1091

${basePath}

<%@pageisELIgnored="false"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";requ...

weixin_33800593的博客 1646

matlab内读取文件目录时斜杠和反斜杠的使用

@matlab内读取文件目录时斜杠和反斜杠的使用TOC matlab内读取文件目录时,斜杠和反斜杠的使用 最近被斜杠和反斜杠弄晕了,于是总结了一下,在此和大家分享一下。 代码 clear; clc; close all; I1= imread('..\zs1.jpg'); %和代码文件夹同目录的图片 (纯反斜杠) I2= imread('../zs2/zs2.j...

weixin_44456694的博客 6571

华为云Stack的学习(三)

LVS是四层负载均衡,建立在OSI模型的传输层之上,所以效率非常高。NAT模式的转发主要通过修改IP地址(位于OSI模型的第三层网络层)实现转发。DR模式的转发主要通过修改MAC地址(位于OSI模型的第二层数据链路层)实现转发。云服务框架中使用的DR模式。域名解析服务器分为管理侧(OM)和租户侧(Tenant)**DNS-OM:**作为云服务的本地DNS服务器,为云服务提供域名解析服务,并代理公网域名的解析。

Ciyaso的博客 8561

jsp中的basePath和path (绝对路径 相对路径)

在JSP中的如果使用 "相对路径" 则有 可能会出现问题. 因为 网页中的 "相对路径" , 他是相对于 "URL请求的地址" 去寻找资源. 上面这句话是什么意思呢 ? 举个例子: 假如我们有一个项目: MyApp 在该项目下, 有一个jsp文件夹 该文件夹下包括: login.jsp    // 登陆页面 register.jps // 注册页面 我们在浏览器中输入地址 (注意: 地址...

rainbow702的博客 502

YOLO26涨点改进 | 全网独家创新、检测头Head改进篇 | AAAI 2026 | 使用StripConvHead改进YOLO26的检测头,处理小目标、遮挡小目标检测有效涨点,助力高效发论文

🔥本文给大家介绍使用StripConv条形卷积改进 YOLO26的检测头,可以显著提高模型在高纵横比物体检测、目标定位和多尺度物体检测方面的表现。StripConv条形卷积能够更有效地捕捉细长物体的特征,提升定位精度,并通过简化卷积核设计减少计算冗余,优化计算效率。此外,该改进增强了 YOLO26对复杂场景和实时任务的适应能力,特别适用于遥感图像目标检测、小目标检测等领域。具体怎么使用请看全文。摘要:随着遥感物体检测的快速发展,检测高纵横比物体仍然是一个挑战性问题。

Ai缝合怪、助力小伙伴高效发论文 267

JSP里的basePath

Eclipse 新建 jsp页面里自动生成以下代码: String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> 作用相当生成了以下路径:   p

一个情绪猿的脖克... 5万+

YOLO学习笔记 | YOLOv8与卡尔曼滤波实现目标跟踪与预测(附代码)

YOLOv8采用改进的CSPDarknet骨干网络和动态标签分配策略,提供高精度、实时的目标检测能力。使用IOU(交并比)或马氏距离作为代价矩阵,通过匈牙利算法匹配预测框与检测框,解决多目标ID分配问题。卡尔曼滤波通过状态方程和观测方程对目标运动建模,结合预测与观测数据优化状态估计。完整代码需结合具体场景调整参数,并补充匈牙利算法实现(可参考。匈牙利算法(Hungarian Algorithm)是解决。的高效方法,常用于目标跟踪中的。),作为跟踪的输入观测值。(将检测框与预测框匹配)。

尘世冰封的专栏 1247

30分钟上手YOLO26 nano:INT8量化部署到智能相机,推理速度提升43%

微调代码(仅需5行,数据集遵循COCO格式)data="custom_data.yaml", # 数据集配置文件epochs=20, # 少量轮数即可收敛batch=8,imgsz=640model.save("yolov26n_custom.pt") # 保存微调后的模型本文在30分钟内完成了YOLO26 nano的INT8量化与智能相机部署,核心步骤为环境准备→模型获取→ONNX导出→INT8量化→部署推理。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 987

<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getSe...

<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%> 这个语句是用来拼接当前网页的相对路径的。 <base herf=".....

weixin_30617561的博客 320

实战六十四:基于机器学习朴素贝叶斯的豆瓣Top250影评的情感分析与预测 附完整源码和数据

实战六十四:基于机器学习朴素贝叶斯的豆瓣Top250影评的情感分析与预测 附完整源码和数据

1563

jsp 中的 basePath 和 path

在JSP中的如果使用 "相对路径"  则有可能会出现问题. 因为 网页中的 "相对路径" , 他是相对于 "URL请求的地址" 去寻找资源. 上面这句话是什么意思呢 ?  举个例子:  假如我们有一个项目: MyApp  在该项目下, 有一个jsp文件夹  该文件夹下包括:  login.jsp    // 登陆页面  register.jps  // 注册页面 我们

xuanjiewu的专栏 4416

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java basepath_jsp中的basePath和path (绝对路径 相对路径)

在JSP中的如果使用 "相对路径" 则有可能会出现问题.因为 网页中的 "相对路径" , 他是相对于 "URL请求的地址" 去寻找资源.上面这句话是什么意思呢 ?举个例子:假如我们有一个项目: MyApp在该项目下, 有一个jsp文件夹该文件夹下包括:login.jsp // 登陆页面register.jps // 注册页面我们在浏览器中输入地址 (注意: 地址的内容):http://loc...

weixin_42515014的博客 394

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

jsp中的basePath和path

在JSP中的如果使用 "相对路径"  则有可能会出现问题.        因为 网页中的 "相对路径" , 他是相对于 "URL请求的地址" 去寻找资源.        上面这句话是什么意思呢 ?     举个例子:     假如我们有一个项目: MyApp     在该项目下, 有一个jsp文件夹     该文件夹下包括:     login.jsp    // 登陆页面  

u013795673的博客 461

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

关于basePath

什么是basePath basePath是我们声明的一个变量,这个变量是通过request对象分别获取协议,IP,端口和应用上下文,并把它们组合在一起后形成的字符串。把该字符串设定为HTML的base标签的href属性的值,可以达到这样的效果:在当前JSP页面中,凡是出现相对引用过的地方,相对引用的路径都是相对于basePath来说的,换句话说,所有的相对引用都不再是相对于当前JSP页面的所在位置...

知了只有一夏 8488

jsp文件开头path, basePath作用

 在JSP中的如果使用 "相对路径"  则有可能会出现问题.  因为 网页中的 "相对路径" , 他是相对于 "URL请求的地址" 去寻找资源.  上面这句话是什么意思呢 ? 举个例子: 假如我们有一个项目: MyApp 在该项目下, 有一个jsp文件夹 该文件夹下包括: login.jsp    // 登陆页面 register.jps  // 注册页

技术改变生活,生活改变思想,思想改变技术。 1365

解决JSP路径问题的方法(jsp文件开头path, basePath作用) 收藏

 在JSP中的如果使用 "相对路径"  则有可能会出现问题. 因为 网页中的 "相对路径" , 他是相对于 "URL请求的地址" 去寻找资源. 上面这句话是什么意思呢 ? 举个例子: 假如我们有一个项目: MyApp 在该项目下, 有一个jsp文件夹 该文件夹下包括: login.jsp    // 登陆页面 register.jps  // 注册页面 我们在浏览器中输入地址 (注意:

mingxunzh的专栏 9629

关于jsp的basepath和path的使用

<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>首先大家看到myeclipse2014会在新建jsp页面的时候,会自动给我们生成这两句代码; 那么

geilidashen的博客 1147

解决JSP路径问题的方法(jsp文件开头path, basePath作用)

在JSP中的如果使用 "相对路径"  则有可能会出现问题. 因为 网页中的 "相对路径" , 他是相对于 "URL请求的地址" 去寻找资源. 上面这句话是什么意思呢 ?  举个例子:  假如我们有一个项目: MyApp  在该项目下, 有一个jsp文件夹  该文件夹下包括:  login.jsp    // 登陆页面  register.jps  // 注册页面 我们在浏览器中输入地址 (注...

wei2314857815的博客 887

解决JSP页面中路径问题的方法(jsp文件开头path, basePath作用)

读懂的基础知识:String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";   request.getSchema()可以返回当前页面使用的协议,http 或是

congcongsuiyue的专栏 1741

JSP路径问题(JSP文件开头path,basePath的作用)

转载:https://blog.youkuaiyun.com/mingxunzh/article/details/4627185     在JSP中的如果使用 "相对路径"  则有可能会出现问题. 因为 网页中的 "相对路径" , 他是相对于 "URL请求的地址" 去寻找资源. 上面这句话是什么意思呢 ?  举个例子:  假如我们有一个项目: MyApp  在该项目下, 有一个jsp文件夹  该文件...

qq_34266804的博客 389
上一篇: SpringMVC请求转发与重定向以及视图与数据的返回 modelandview(重要)
下一篇: 安装MySql报错(This application requires .NET Framework 4.5.2)
周末去看海
博客等级 码龄9年 50粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值