前后端交互中的絕對路徑和相對路徑

前端

 <form action="hello" method="post">

1.?不加斜杠

(相對路徑,如?action="hello"

  • 解析規則:基于當前頁面的?URL 路徑部分?進行拼接。
    假設當前頁面 URL 是?http://域名:端口/應用上下文/xxx.html(例如?http://localhost:8080/test/page.html),則:

    • 瀏覽器會將?hello?拼接到?當前路徑的最后一級目錄后
    • 若當前路徑是?/test/(比如頁面是?/test/index.html,其路徑部分為?/test/),則?action="hello"?解析為?http://域名:端口/test/hello
    • 若當前路徑是?/test/sub/(頁面是?/test/sub/page.html),則解析為?http://域名:端口/test/sub/hello
  • 特點繼承當前頁面的路徑前綴(包括應用上下文、子目錄等),適用于?同應用內的路徑跳轉(比如后端接口在應用上下文內,如?/test/hello)。

2.?加斜杠

(根路徑,如?action="/hello"

  • 解析規則:從?域名的根路徑?開始拼接(忽略當前頁面的路徑前綴)。
    無論當前頁面 URL 是什么(比如?http://localhost:8080/test/page.html?或?http://localhost:8080/other/page.html),action="/hello"?都會解析為?http://域名:端口/hello(直接指向根路徑下的?hello,與當前頁面的路徑無關)。

  • 特點強制從根開始,適用于?跨應用或根路徑下的接口(若后端接口確實在根路徑,如?/hello,但實際開發中較少見,因為 Web 應用通常有上下文路徑)。

?舉例對比

(假設應用上下文是?/test,當前頁面是?/test/index.html):

  • 不加斜杠action="hello"?→ 解析為?http://localhost:8080/test/hello(帶應用上下文,正確訪問應用內的接口)。
  • 加斜杠action="/hello"?→ 解析為?http://localhost:8080/hello(不帶應用上下文,若后端接口不在根路徑,會 404 錯誤)。

總結:

  • 不加斜杠跟著當前頁面的路徑走(適合應用內的相對路徑,自動帶上應用上下文)。
  • 加斜杠直接從根開始(適合根路徑下的絕對路徑,與當前頁面路徑無關)。

后端?

@WebServlet("/hello")

后端 Servlet 路徑

@WebServlet("/hello")

  • 路徑含義
    該 Servlet 映射到?應用上下文內的?/hello?路徑。假設應用上下文是?/test(如之前配置的?Context path),則:

    • 訪問 URL?為?http://域名:端口/應用上下文/hello(例如?http://localhost:8080/test/hello)。
    • 映射規則:Servlet 路徑是?相對于應用上下文的根(即?/test?是應用上下文,Servlet 路徑?/hello?直接跟在后面,形成?/test/hello)。
  • 為什么必須加斜杠?
    Servlet 規范規定,映射路徑?必須以斜杠開頭(表示從應用上下文的根開始),否則編譯器會報錯(如?@WebServlet("hello")?是非法的,無法啟動 Tomcat)。這是后端代碼的?語法強制要求,和前端路徑的解析邏輯不同。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/81497.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81497.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/81497.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在Odoo 18中創建進度條指南

在Odoo 18中創建進度條指南 一、創建進度條模板 首先在名為 progress_bar_widget.xml 的文件中定義一個名為 ProgressBarWidget 的新模板。該模板使用兩個CSS類&#xff1a;progress-bar-inner 用于樣式化進度條&#xff0c;progress_number 用于顯示進度百分比。您可以根據需…

Linux grep 命令詳解:常用選項、參數及實戰場景

一、grep 命令簡介 grep&#xff08;Global Regular Expression Print&#xff09;是 Linux 中用于文本搜索的核心工具&#xff0c;支持正則表達式&#xff0c;能快速定位文件中的目標內容。 二、常用選項&#xff08;Options&#xff09;及英文對照 | 選項 | 英文全稱 | 作用 …

【Java-EE進階】SpringBoot針對某個IP限流問題

目錄 簡介 1. 使用Guava的RateLimiter實現限流 添加Guava依賴 實現RateLimiter限流邏輯 限流管理類 控制器中應用限流邏輯 2. 使用計數器實現限流 限流管理類 控制器中應用限流邏輯 簡介 針對某個IP進行限流以防止惡意點擊是一種常見的反爬蟲和防止DoS的措施。限流策…

Linux問題排查-找到偷偷寫文件的進程

在 Linux 系統中&#xff0c;若要通過已修改的文件找到修改該文件的進程 PID&#xff0c;可以結合以下方法分析&#xff0c;具體取決于文件是否仍被進程打開或已被刪除但句柄仍存在&#xff1a; 一、文件仍被進程打開&#xff08;未刪除&#xff09; 如果文件當前正在被某個進…

More Effective C++:改善編程與設計(下)

目錄 條款19:了解臨時對象的來源 條款20:協助完成“返回值優化” 條款21:利用重載技術避免隱式類型轉換 條款22:考慮以操作符復合形式&#xff08;op&#xff09;取代其獨身形式&#xff08;op&#xff09; 條款23:考慮使用其他程序庫 條款24:了解virtual functions、mul…

VTK|類似CloudCompare的比例尺實現2-vtk實現

文章目錄 實現類頭文件實現類源文件調用邏輯關鍵問題縮放限制問題投影模式項目git鏈接實現類頭文件 以下是對你提供的 ScaleBarController.h 頭文件添加詳細注釋后的版本,幫助你更清晰地理解每個成員和方法的用途,尤其是在 VTK 中的作用: #ifndef SCALEBARCONTROLLER_H #de…

PostgreSQL 聯合索引生效條件

最近面試的時候&#xff0c;總會遇到一個問題 在 PostgreSQL 中&#xff0c;聯合索引在什么條件下會生效&#xff1f; 特此記錄~ 前置信息 數據庫版本 PostgreSQL 14.13, compiled by Visual C build 1941, 64-bit 建表語句 CREATE TABLE people (id SERIAL PRIMARY KEY,c…

SpringBoot項目里面發起http請求的幾種方法

在Spring Boot項目中發起HTTP請求的方法 在Spring Boot項目中&#xff0c;有幾種常用的方式可以發起HTTP請求&#xff0c;以下是主要的幾種方法&#xff1a; 1. 使用RestTemplate (Spring 5之前的主流方式) // 需要先注入RestTemplate Autowired private RestTemplate restT…

《Python星球日記》 第90天:微調的概念以及如何微調大模型?

名人說:路漫漫其修遠兮,吾將上下而求索。—— 屈原《離騷》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder??) 目錄 一、微調原理1. 什么是大模型微調?2. 為什么需要微調?3. 微調的基本流程4. 微調策略分類二、LoRA(Low-Rank Adaptation)技術詳解1. LoRA的核…

機器學習-人與機器生數據的區分模型測試 - 模型融合與檢驗

模型融合 # 先用普通Pipeline訓練 from sklearn.pipeline import Pipeline#from sklearn2pmml.pipeline import PMMLPipeline train_pipe Pipeline([(scaler, StandardScaler()),(ensemble, VotingClassifier(estimators[(rf, RandomForestClassifier(n_estimators200, max_de…

怎樣免費開發部署自己的網站?

要免費開發自己的網站&#xff0c;您可以根據自己的技術水平和需求選擇以下兩種主要方式&#xff1a; 零基礎用戶&#xff1a;建議使用如WordPress.com、Weebly、Strikingly等平臺&#xff0c;快速搭建網站。 有一定技術基礎的用戶&#xff1a;可選擇自行開發網站&#xff0c;…

調用百度云API機器翻譯

新建Python文件&#xff0c;叫 text_translator.py 輸入 import requests import jsonAPI_KEY "glYiYVF2dSc7EQ8n78VDRCpa" # 替換為自己的API Key SECRET_KEY "kUlhze8OQZ7xbVRp" # 替換為自己的Secret Keydef main():# 選擇翻譯方向while True:di…

OpenAI與微軟洽談新融資及IPO,Instagram因TikTok流失四成用戶

OpenAI與微軟洽談新融資及IPO 據悉&#xff0c;OpenAI 正與微軟洽談新融資及籌備 IPO&#xff0c;關鍵問題是微軟在 OpenAI 重組后的股權比例。微軟已投資超 130 億美元&#xff0c;雙方修訂 2019 年合同&#xff0c;微軟擬棄部分股權換新技術訪問權。OpenAI 上周放棄了有爭議轉…

git工具使用詳細教程-------命令行和TortoiseGit圖形化

下載 git下載地址&#xff1a;https://git-scm.com/downloads TortoiseGit&#xff08;圖形化工具&#xff09;下載地址&#xff1a;https://tortoisegit.org/download/ 認識git結構 工作區&#xff1a;存放代碼的地方 暫存區&#xff1a;臨時存儲&#xff0c;將工作區的代碼…

構建RAG混合開發---PythonAI+JavaEE+Vue.js前端的實踐

7GB顯存如何部署bf16精度的DeepSeek-R1 70B大模型&#xff1f;-CSDN博客 服務容錯治理框架resilience4j&sentinel基礎應用---微服務的限流/熔斷/降級解決方案-CSDN博客 conda管理python環境-CSDN博客 快速搭建對象存儲服務 - Minio&#xff0c;并解決臨時地址暴露ip、短…

【Java ee初階】jvm(3)

一、雙親委派機制&#xff08;類加載機制中&#xff0c;最經常考到的問題&#xff09; 類加載的第一個環節中&#xff0c;根據類的全限定類名&#xff08;包名類名&#xff09;找到對應的.class文件的過程。 JVM中進行類加載的操作&#xff0c;需要以來內部的模塊“類加載器”…

wps excel將表格輸出pdf時所有列在一張紙上

記錄&#xff1a;wps excel將表格輸出pdf時所有列在一張紙上 1&#xff0c;調整縮放比例&#xff0c;或選擇將所有列打印在一頁 2&#xff0c;將表格的所有鋪滿到這套虛線

分布式微服務系統架構第134集:筆記1運維服務器經驗,高并發,大數據量系統

加群聯系作者vx&#xff1a;xiaoda0423 倉庫地址&#xff1a;https://webvueblog.github.io/JavaPlusDoc/ https://1024bat.cn/ https://github.com/webVueBlog/fastapi_plus https://webvueblog.github.io/JavaPlusDoc/ ? 一、查看端口是否被占用的常用命令 1?? lsof 命令&…

IS-IS 中間系統到中間系統

前言&#xff1a; 中間系統到中間系統IS-IS&#xff08;Intermediate System to Intermediate System&#xff09;屬于內部網關協議IGP&#xff08;Interior Gateway Protocol&#xff09;&#xff0c;用于自治系統內部 IS-IS也是一種鏈路狀態協議&#xff0c;使用最短路徑優先…

前端安全:XSS、CSRF 防御與最佳實踐

引言 隨著互聯網應用的普及&#xff0c;前端安全問題日益凸顯。作為開發者&#xff0c;了解并防范常見的安全威脅至關重要。本文將深入探討兩種最常見的前端安全威脅&#xff1a;跨站腳本攻擊&#xff08;XSS&#xff09;和跨站請求偽造&#xff08;CSRF&#xff09;&#xff…